Suggestion de compte téléphonique

Dans Android 10, le service de suggestion de comptes téléphoniques permet aux utilisateurs de proposer des suggestions de comptes téléphoniques lors d'un appel. Par exemple, pour les utilisateurs disposant d'un appareil doté de plusieurs cartes SIM et de tarifs inférieurs pour les appels intra-réseau, ce service identifie d'abord l'opérateur de l'appelé, puis suggère d'utiliser la carte SIM sur le même réseau que l'appelé.

Le service de suggestion de compte téléphonique est facultatif et peut être implémenté sur les appareils fonctionnant sous Android 10 ou version ultérieure.

Mise en œuvre

Pour implémenter des suggestions de compte téléphonique, 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 effectue un appel sortant pour lequel ni le compte de téléphone sortant par défaut ni le compte de téléphone préféré ne sont définis pour l'appelé, le service de télécommunications se lie à PhoneAccountSuggestionService pour recueillir des informations sur les comptes, onAccountSuggestionRequest(String number) est appelé et l'appel sortant le processus est suspendu.

PhoneAccountSuggestionService doit appeler suggestPhoneAccounts(String number, List<PhoneAccountSuggestion> suggestions) avec le numéro 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 téléphoniques suggérés. Le composeur doit ensuite afficher la liste des comptes téléphoniques suggérés parmi lesquels l'utilisateur peut choisir pour passer l'appel.

Suggestion de compte de téléphone

Pour faire des suggestions, utilisez la classe PhoneAccountSuggestion . Par exemple, si le service détermine que l'appelé est sur le même opérateur que l'une des cartes 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 composeur.

Par exemple, dans une situation où 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 numéroteur de contourner la boîte de dialogue de sélection. et passez automatiquement l'appel en utilisant le compte téléphonique.

Pour plus d’informations sur d’autres suggestions, consultez PhoneAccountSuggestion .

Numéroteur

Lorsque l'appel entre dans 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'interface utilisateur du système

En fonction de votre implémentation, des modifications de l'interface utilisateur du système peuvent être nécessaires. Par exemple, pour permettre aux utilisateurs de spécifier que tous les appels vers 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 :