Dans Android 10, le service de suggestion de compte téléphonique permet d'afficher des suggestions de comptes téléphoniques aux utilisateurs lorsqu'ils passent un appel. Par exemple, pour les utilisateurs disposant d'un appareil avec plusieurs cartes SIM et de tarifs plus avantageux pour les appels intra-réseau, ce service identifie d'abord l'opérateur du destinataire, puis suggère d'utiliser la carte SIM du même réseau que celui du destinataire.
Le service de suggestion de compte téléphonique est facultatif et peut être implémenté sur les appareils exécutant 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é ne sont définis pour le destinataire, le service de télécommunications se lie à PhoneAccountSuggestionService
pour recueillir 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 faire des suggestions, utilisez la classe PhoneAccountSuggestion.
Par exemple, si le service détermine que l'appelant utilise le même opérateur que l'une des cartes SIM de l'appareil, il doit marquer le compte de téléphone avec REASON_INTRA_CARRIER
.
Ces informations peuvent ensuite être transmises à l'utilisateur dans le clavier du téléphone.
Par exemple, si l'utilisateur a configuré l'appareil pour utiliser une carte 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 de numérotation de contourner la boîte de dialogue de sélection et de passer automatiquement l'appel à l'aide du compte de téléphone.
Pour en savoir plus sur les autres suggestions, consultez PhoneAccountSuggestion
.
Téléphone
Lorsque l'appel passe à l'état STATE_SELECT_PHONE_ACCOUNT
, le composeur doit utiliser les informations de PhoneAccountSuggestion
pour gérer EXTRA_SUGGESTED_PHONE_ACCOUNTS
.
Désactiver le service
Pour personnaliser votre implémentation pour des transporteurs 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 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 interface utilisateur de paramètres personnalisés pour l'appareil.
Validation
Pour valider votre implémentation, exécutez les tests CTS suivants :