Suggerimento per l'account telefonico

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: