In Android 10, il servizio di suggerimento dell'account telefono consente di mostrare agli utenti suggerimenti per gli account telefono quando effettuano una chiamata. Ad esempio, per gli utenti con un dispositivo con più SIM e tariffe inferiori per le chiamate interne alla rete, questo servizio identifica prima l'operatore del destinatario della chiamata e poi suggerisce di utilizzare la SIM sulla stessa rete del destinatario.
Il servizio di suggerimento dell'account del telefono è facoltativo e può essere implementato su dispositivi con Android 10 o versioni successive.
Implementazione
Per implementare i suggerimenti per l'account telefono, implementa uno
PhoneAccountSuggestionService
servizio in un'app che si trova in /system/priv-app/
. Il servizio non viene
interrogato se viene 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 non è impostato né l'account telefono in uscita predefinito né l'account telefono preferito per il destinatario, il servizio di telecomunicazioni si lega a PhoneAccountSuggestionService
per raccogliere informazioni sugli account, viene chiamato onAccountSuggestionRequest(String number)
e il processo di chiamata in uscita viene sospeso.
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
dialer deve quindi visualizzare l'elenco degli account telefono 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 destinatario della chiamata utilizza lo stesso operatore di una delle SIM nel dispositivo, deve contrassegnare l'account telefono con REASON_INTRA_CARRIER
.
Queste informazioni possono poi essere comunicate all'utente nel dialer.
Ad esempio, in una situazione in cui l'utente ha configurato il dispositivo per utilizzare
una SIM di lavoro per tutti i contatti
in un Account Google di lavoro, il servizio deve contrassegnare l'account telefono con
REASON_USER_SET
e impostare
shouldAutoSelect
su true per consentire al dialer di ignorare la finestra di dialogo di selezione ed effettuare automaticamente
la chiamata utilizzando l'account telefono.
Per informazioni su altri suggerimenti, vedi
PhoneAccountSuggestion
.
Telefono
Quando la chiamata entra nello stato
STATE_SELECT_PHONE_ACCOUNT
, il dialer deve utilizzare le informazioni di
PhoneAccountSuggestion
per gestire
EXTRA_SUGGESTED_PHONE_ACCOUNTS
.
Disattivare il servizio
Per personalizzare l'implementazione per corrieri specifici, puoi attivare o disattivare il servizio utilizzando setComponentEnabledSetting
.
Se disattivato, il servizio non viene interrogato.
Implementazione dell'interfaccia utente di sistema
A seconda dell'implementazione, potrebbero essere necessarie modifiche all'interfaccia utente del sistema. Ad esempio, per consentire agli utenti di specificare che tutte le chiamate a un contatto specifico vengano effettuate da un account telefono 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: