Pour les appareils équipés d'Android 15 ou version ultérieure, vous pouvez :
implémenter la sélection de domaine
entre le service IMS et les anciens services sur des réseaux à commutation de circuits via
l'API système DomainSelectionService
. DomainSelectionService
est une interface bien définie entre la plate-forme Android et un fournisseur
la mise en œuvre de la sélection de domaine. Cette interface permet au fournisseur d'implémenter
fournissent des informations de signalisation, comme le domaine sur lequel les appels et les SMS sortants
et la préférence de type de réseau
dans la recherche de réseaux, à la plateforme.
Figure 1 : Schéma de l'architecture de la fonctionnalité de sélection de domaine
Exemples et source
Android fournit une implémentation de référence pour la fonctionnalité de sélection de domaine dans
AOSP : TelephonyDomainSelectionService
. Pour obtenir des
documentation de l'API DomainSelectionService
, consultez
DomainSelectionService
et les autres classes de l'API.
Implémentation
Pour implémenter la fonctionnalité de sélection de domaine sur un appareil Android, procédez comme suit : étapes requises:
Créer une application de sélection de domaine Le service doit être défini dans
AndroidManifest.xml
.Ajoutez une configuration à la superposition d'appareil pour permettre à la plate-forme de s'associer au Implémentation de
DomainSelectionService
.Compatibilité avec les interfaces HAL des cases d'option requises pour la fonctionnalité de sélection de domaine.
Cette section fournit des informations supplémentaires sur ces étapes.
Ajouter une entrée de service dans le fichier AndroidManifest.xml
Pour que votre application de sélection de domaine enregistre le service DomainSelectionService
avec le framework, ajoutez une entrée de service au fichier manifeste à l'aide de la commande suivante :
format:
<service
android:name="com.example.domainselection.DomainSelectionService"
android:directBootAware="true"
android:persistent="true"
…
android:permission="android.permission.BIND_DOMAIN_SELECTION_SERVICE"
…
<intent-filter>
<action android:name="android.telephony.DomainSelectionService"/>
</intent-filter>
…
</service>
La définition de service dans AndroidManifest.xml
doit définir les éléments suivants :
pour que la fonctionnalité de sélection de domaine fonctionne.
directBootAware="true"
: permet de détecter et d'exécuter le service de téléphonie avant que l'utilisateur déverrouille l'appareil. Le service ne peut pas accéder stockage chiffré par l'appareil avant que l'utilisateur ne déverrouille l'appareil. Pour plus d'informations, consultez Prendre en charge le mode Démarrage direct et Chiffrement basé sur les fichiers.persistent="true"
: permet au service de s'exécuter de manière persistante et de ne pas tuées par le système pour récupérer de la mémoire. Cet attribut fonctionne uniquement si est conçue comme une application système.permission="android.permission.BIND_DOMAIN_SELECTION_SERVICE"
: garantit que seul un processus disposant de l'autorisationBIND_DOMAIN_SELECTION_SERVICE
qui lui est accordée peut être liée à l'application. Cela empêche une application malveillante de se lier à car seules les applications système peuvent obtenir l'autorisation d'infrastructure.
Le service doit également spécifier l'élément intent-filter
avec le paramètre
Action android.telephony.DomainSelectionService
. Cela permet au framework de trouver
le service DomainSelectionService
.
Définir la configuration dans la superposition d'appareil
Pour que la plate-forme puisse s'associer de manière sécurisée au service DomainSelectionService
, ajoutez
la configuration suivante à la superposition d'appareil:
config_domain_selection_service_component_name
: le nom du composant (chaîneComponentName
aplatie) pour la ServiceDomainSelectionService
Android n'est pas compatible avec les applications proposant des logiciels tiers téléchargeables
DomainSelectionService
, l'application de sélection de domaine doit être
application système qui se trouve dans le /system_ext/priv-app/
ou /product/priv-app/
. Le framework vérifie si le nom du package de l'implémentation
correspond à la valeur de superposition de l'appareil pour garantir que seules les applications fiables et préinstallées
liés.
Prendre en charge les interfaces radio HAL
Pour activer la fonctionnalité de sélection de domaine, prendre en charge les cases d'options HAL requises suivantes : interfaces:
-
void setEmergencyMode(int serial, EmergencyMode emcModeType); void triggerEmergencyNetworkScan(int serial, EmergencyNetworkScanTrigger request); void cancelEmergencyNetworkScan(int serial, boolean resetScan); void exitEmergencyMode(int serial);
-
void emergencyNetworkScanResult(RadioIndicationType type, EmergencyRegResult result);
Validation
Pour vérifier que Telephony Framework répond correctement aux
DomainSelectionService
, exécutez les tests CTS dans
DomainSelectionServiceTestOnMockModem