Dans Android 10, le service de suggestion de compte de téléphone permet d'afficher des suggestions de comptes de téléphone aux utilisateurs lorsqu'ils passent un appel. Par exemple, pour les utilisateurs disposant d'un appareil avec plusieurs cartes SIM et de tarifs inférieurs pour les appels intra-réseaux, ce service identifie d'abord l'opérateur du destinataire, puis suggère d'utiliser la carte SIM sur le même réseau que le destinataire.
Le service de suggestion de compte pour téléphone est facultatif et peut être implémenté sur les appareils équipés d'Android 10 ou version ultérieure.
Implémentation
Pour implémenter des suggestions de compte de téléphone, implémentez un service PhoneAccountSuggestionService
dans une application située dans /system/priv-app/
. Le service n'est pas interrogé si plusieurs PhoneAccountSuggestionService
sont implémentés. Le service doit déclarer l'autorisation android.Manifest.permission.BIND_PHONE_ACCOUNT_SUGGESTION_SERVICE
.
Lorsqu'un utilisateur passe un appel sortant pour lequel ni le compte téléphonique sortant par défaut ni le compte téléphonique préféré n'est défini pour la personne appelée, le service de télécommunications se lie à PhoneAccountSuggestionService
pour collecter des informations sur les comptes, onAccountSuggestionRequest(String number)
est appelé et le processus d'appel sortant est suspendu.
PhoneAccountSuggestionService
doit appeler suggestPhoneAccounts(String number, List<PhoneAccountSuggestion> suggestions)
avec le nombre renvoyé par onAccountSuggestionRequest(String number)
.
Lorsque suggestPhoneAccounts(String number, List<PhoneAccountSuggestion> suggestions)
est appelé, le service de télécommunications renvoie une liste de comptes de téléphone suggérés. Le clavier doit ensuite afficher la liste des comptes de téléphone suggérés parmi lesquels l'utilisateur peut choisir pour passer l'appel.
PhoneAccountSuggestion
Pour formuler des suggestions, utilisez la classe PhoneAccountSuggestion.
Par exemple, si le service détermine que l'appelant est chez le même opérateur que l'une des SIM de l'appareil, le service doit marquer le compte de téléphone avec REASON_INTRA_CARRIER
.
Ces informations peuvent ensuite être transmises à l'utilisateur dans le clavier.
Par exemple, si l'utilisateur a configuré l'appareil pour qu'il utilise une SIM professionnelle pour tous les contacts d'un compte Google professionnel, le service doit marquer le compte de téléphone avec REASON_USER_SET
et définir shouldAutoSelect
sur "true" pour permettre au clavier numérique de contourner la boîte de dialogue de sélection et d'établir automatiquement l'appel à l'aide du compte de téléphone.
Pour en savoir plus sur d'autres suggestions, consultez PhoneAccountSuggestion
.
Téléphone
Lorsque l'appel passe à l'état STATE_SELECT_PHONE_ACCOUNT
, le clavier doit utiliser les informations de PhoneAccountSuggestion
pour gérer EXTRA_SUGGESTED_PHONE_ACCOUNTS
.
Désactiver le service
Pour personnaliser votre implémentation pour des opérateurs spécifiques, vous pouvez activer ou désactiver le service à l'aide de setComponentEnabledSetting
.
Le service n'est pas interrogé s'il est désactivé.
Implémentation de l'UI du système
Selon votre implémentation, des modifications de l'UI du système peuvent être nécessaires. Par exemple, pour permettre aux utilisateurs de spécifier que tous les appels à un contact spécifique sont effectués à partir d'un compte téléphonique spécifique, vous devez implémenter un flux de configuration et une UI de paramètres personnalisés pour l'appareil.
Validation
Pour valider votre implémentation, exécutez les tests CTS suivants: