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 :
-
/cts/tests/tests/telecom/src/android/telecom/cts/PhoneAccountSuggestionServiceTest.java
-
/cts/tests/tests/telecom/src/android/telecom/cts/PhoneAccountSuggestionTest.java