Suggerimento per l'account telefonico

In Android 10, il servizio di suggerimenti per gli account telefonici 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 più basse per le chiamate all'interno della rete, questo servizio identifica prima l'operatore del destinatario e poi suggerisce di utilizzare la SIM sulla stessa rete del destinatario.

Il servizio di suggerimenti per gli account telefonici è 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 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 per la quale non è impostato né l' account telefonico in uscita predefinito né l' account telefonico preferito per il destinatario, il servizio di telecomunicazioni si associa 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 suggestPhoneAccounts(String number, List<PhoneAccountSuggestion> suggestions) viene chiamato, il servizio di telecomunicazioni restituisce un elenco di account telefonici suggeriti. Il dialer deve quindi mostrare all'utente l'elenco degli account telefonici suggeriti tra cui scegliere per effettuare la chiamata.

PhoneAccountSuggestion

Per fornire suggerimenti, utilizza la classe PhoneAccountSuggestion. Ad esempio, se il servizio determina che il chiamato utilizza lo stesso operatore di una delle SIM del dispositivo, il servizio deve contrassegnare l'account telefonico con REASON_INTRA_CARRIER. Queste informazioni possono quindi essere comunicate all'utente nel dialer.

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 lavorativo, il servizio deve contrassegnare l'account telefonico con REASON_USER_SET e impostare shouldAutoSelect su true per consentire all'app Telefono di ignorare la finestra di dialogo di selezione ed effettuare automaticamente la chiamata utilizzando l'account telefonico.

Per informazioni su altri suggerimenti, vedi PhoneAccountSuggestion.

Telefono

Quando la chiamata entra nello STATE_SELECT_PHONE_ACCOUNT stato, il dialer 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 il servizio è disattivato, non viene interrogato.

Implementazione della UI 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 vengano 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: