Suggestion de compte téléphonique

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 de l'interlocuteur, puis suggère d'utiliser la carte SIM sur le même réseau que l'interlocuteur.

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 téléphonique 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 numéroteur 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

En fonction de votre implémentation, vous devrez peut-être modifier l'UI du système. Par exemple, pour permettre aux utilisateurs d'indiquer que tous les appels à un contact spécifique sont effectués à partir d'un compte de téléphone 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: