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 dell'account dello smartphone è facoltativo e può essere implementato su dispositivi con Android 10 o versioni successive.
Implementazione
Per implementare i suggerimenti per gli account telefonici, implementa un
PhoneAccountSuggestionService
servizio 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
sono impostati 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 visualizzatore di chiamate deve quindi mostrare l'elenco degli 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 utilizza lo stesso operatore di una
delle SIM nel dispositivo, il servizio deve 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 devono essere effettuate da un account telefonico specifico, devi implementare un flusso di configurazione personalizzato e un'interfaccia utente delle impostazioni per il dispositivo.
Convalida
Per convalidare l'implementazione, esegui i seguenti test CTS: