Suggerimento sull'account telefonico

In Android 10, il servizio di suggerimento dell'account telefonico consente di mostrare agli utenti suggerimenti per gli account telefonici quando effettuano una chiamata. Ad esempio, per gli utenti con un dispositivo con più SIM e tariffe inferiori per le chiamate intrarete, 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 telefonico è facoltativo e può essere implementato su dispositivi con Android 10 o versioni successive.

Implementazione

Per implementare i suggerimenti sull'account del telefono, implementa un servizio PhoneAccountSuggestionService in un'app che si trova in /system/priv-app/ . Il servizio non viene interrogato 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 per la quale non è impostato né l' account telefonico in uscita predefinito né quello preferito , il servizio di telecomunicazioni si collega a PhoneAccountSuggestionService per raccogliere informazioni sugli account, viene chiamato onAccountSuggestionRequest(String number) e la chiamata in uscita il processo è 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 combinatore deve quindi visualizzare l'elenco degli account telefonici suggeriti tra cui l'utente può scegliere per effettuare la chiamata.

SuggerimentoAccountTelefonico

Per fornire suggerimenti, utilizzare la classe PhoneAccountSuggestion . Ad esempio, se il servizio determina che il destinatario della chiamata utilizza lo stesso operatore telefonico di una delle SIM nel dispositivo, il servizio dovrebbe contrassegnare l'account telefonico con REASON_INTRA_CARRIER . Queste informazioni possono quindi essere trasmesse 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 dovrebbe contrassegnare l'account del telefono con REASON_USER_SET e impostare shouldAutoSelect su true per consentire al dialer di ignorare la finestra di dialogo di selezione ed effettua automaticamente la chiamata utilizzando l'account del telefono.

Per informazioni su altri suggerimenti, vedere PhoneAccountSuggestion .

Dialer

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

Disabilitare il servizio

Per personalizzare la tua implementazione per operatori specifici, puoi abilitare o disabilitare il servizio utilizzando setComponentEnabledSetting . Il servizio non viene interrogato se disabilitato.

Implementazione dell'interfaccia utente del 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 vengono effettuate da un account telefonico specifico, è necessario implementare un flusso di configurazione personalizzato e un'interfaccia utente delle impostazioni per il dispositivo.

Validazione

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