Suggerimento per l'account telefonico

In Android 10, il servizio di suggerimenti per gli account di telefoni consente di mostrare agli utenti suggerimenti per gli account di telefoni quando effettuano una chiamata. Ad esempio, per gli utenti con un dispositivo con più SIM e tariffe inferiori per le chiamate all'interno della rete, questo servizio identifica prima l'operatore del chiamato e poi suggerisce di utilizzare la SIM sulla stessa rete del chiamato.

Il servizio di suggerimento per gli account telefonici è facoltativo e può essere implementato su dispositivi con Android 10 o versioni successive.

Implementazione

Per implementare i suggerimenti per l'account telefonico, implementa un servizio PhoneAccountSuggestionService in un'app che si trova in /system/priv-app/. Il servizio non viene sottoposto a query se è implementato più di un PhoneAccountSuggestionService. Il servizio deve dichiarare l'autorizzazione android.Manifest.permission.BIND_PHONE_ACCOUNT_SUGGESTION_SERVICE.

Quando un utente effettua una chiamata in uscita in cui né il account telefonico in uscita predefinito né il account telefonico preferito è impostato per il chiamante, il servizio di telecomunicazioni si lega a PhoneAccountSuggestionService per raccogliere informazioni sugli account, viene chiamato onAccountSuggestionRequest(String number) e la procedura di chiamata in uscita viene sospesa.

PhoneAccountSuggestionService deve chiamare suggestPhoneAccounts(String number, List<PhoneAccountSuggestion> suggestions) con il numero restituito da onAccountSuggestionRequest(String number).

Quando viene chiamato suggestPhoneAccounts(String number, List<PhoneAccountSuggestion> suggestions), il servizio di telecomunicazioni restituisce un elenco di account telefonici suggeriti. Il telefono deve quindi visualizzare l'elenco di account telefonici suggeriti tra cui l'utente può scegliere per effettuare la chiamata.

PhoneAccountSuggestion

Per fornire suggerimenti, utilizza la classe PhoneAccountSuggestion. Ad esempio, se il servizio determina che il chiamante fa parte dello stesso operatore di una delle SIM nel dispositivo, il servizio dovrebbe contrassegnare l'account telefonico con REASON_INTRA_CARRIER. Queste informazioni possono quindi essere comunicate all'utente nel tastierino.

Ad esempio, in una situazione in cui l'utente ha configurato il dispositivo in modo da utilizzare una SIM di lavoro per tutti i contatti in un Account Google di lavoro, il servizio deve contrassegnare l'account dello smartphone con REASON_USER_SET e impostare shouldAutoSelect su true per consentire al tastierino di bypassare la finestra di dialogo di selezione e effettuare automaticamente la chiamata utilizzando l'account dello smartphone.

Per informazioni su altri suggerimenti, consulta PhoneAccountSuggestion.

Telefono

Quando la chiamata entra nello stato STATE_SELECT_PHONE_ACCOUNT, il tastierino deve utilizzare le informazioni di PhoneAccountSuggestion per gestire EXTRA_SUGGESTED_PHONE_ACCOUNTS.

Disattivare il servizio

Per personalizzare l'implementazione per operatori specifici, puoi attivare o disattivare il servizio utilizzando setComponentEnabledSetting. Se è disattivato, non viene eseguita alcuna query sul servizio.

Implementazione dell'interfaccia utente di sistema

A seconda dell'implementazione, potrebbero essere necessarie modifiche all'interfaccia utente di sistema. Ad esempio, per consentire agli utenti di specificare che tutte le chiamate a un contatto specifico vengono effettuate da uno specifico account telefonico, devi implementare un'interfaccia utente per il flusso di configurazione e le impostazioni personalizzate per il dispositivo.

Convalida

Per convalidare l'implementazione, esegui i seguenti test CTS: