Per i dispositivi con Android 15 o versioni successive, puoi:
implementa la selezione del dominio
tra il servizio IMS e i servizi legacy su reti con commutazione di circuito utilizzando
l'API di sistema DomainSelectionService
. DomainSelectionService
è un'interfaccia ben definita tra la piattaforma Android e
la selezione del dominio. Questa interfaccia consente al fornitore
forniscono informazioni di segnalazione, ad esempio il dominio con cui vengono effettuate le chiamate e gli SMS in uscita
e la preferenza del tipo di rete nella ricerca di reti, sulla piattaforma.
Figura 1. Diagramma dell'architettura per la funzionalità di selezione dei domini
Esempi e fonte
Android fornisce un'implementazione di riferimento per la funzionalità di selezione dei domini in
AOSP alle ore TelephonyDomainSelectionService
. Per dettagli
documentazione per l'API DomainSelectionService
, consulta
DomainSelectionService
e gli altri corsi nell'API.
Implementazione
Per implementare la funzionalità di selezione del dominio su un dispositivo Android: sono obbligatori:
Crea un'app per la selezione del dominio. Il servizio deve essere definito nel
AndroidManifest.xml
.Aggiungi una configurazione all'overlay del dispositivo per consentire alla piattaforma di eseguire l'associazione alla Implementazione di
DomainSelectionService
.Supportare le interfacce HAL radio necessarie per la funzionalità di selezione dei domini.
Questa sezione fornisce ulteriori dettagli su questi passaggi.
Aggiungi una voce di servizio in AndroidManifest.xml
Per consentire all'app di selezione del dominio di registrare il servizio DomainSelectionService
con il framework, aggiungi una voce di servizio nel file manifest utilizzando il seguente codice
formato:
<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 definizione del servizio in AndroidManifest.xml
deve definire quanto segue
utilizzati dalla funzione di selezione dei domini.
directBootAware="true"
: consente al servizio di essere rilevato ed eseguito prima che l'utente sblocchi il dispositivo. Il servizio non può accedere criptata sul dispositivo prima che l'utente sblocchi il dispositivo. Per ulteriori informazioni informazioni, vedi Supporto della modalità di avvio diretto e Crittografia basata su file.persistent="true"
: consente al servizio di essere eseguito in modo permanente e non terminati dal sistema per recuperare memoria. Questo attributo funziona solo se l'attributo è un'app di sistema.permission="android.permission.BIND_DOMAIN_SELECTION_SERVICE"
: garantisce che solo un processo con l'autorizzazioneBIND_DOMAIN_SELECTION_SERVICE
possono essere associati all'app. In questo modo un'app non autorizzata non si associa servizio perché solo alle app di sistema può essere concessa l'autorizzazione il modello di machine learning.
Il servizio deve inoltre specificare l'elemento intent-filter
con il
Azione android.telephony.DomainSelectionService
. In questo modo il framework trova
il servizio DomainSelectionService
.
Definisci la configurazione nell'overlay del dispositivo
Per associare la piattaforma al servizio DomainSelectionService
in modo sicuro, aggiungi
la seguente configurazione all'overlay del dispositivo:
config_domain_selection_service_component_name
: il (una stringaComponentName
bidimensionale) per ServizioDomainSelectionService
Perché Android non supporta le app con contenuti scaricabili di terze parti
DomainSelectionService
implementazioni, l'app di selezione del dominio deve essere un
app di sistema che risiede in /system_ext/priv-app/
o /product/priv-app/
. Il framework verifica se il nome del pacchetto dell'implementazione
corrisponde al valore di overlay del dispositivo per garantire che vengano eseguite solo le app attendibili e preinstallate
limitato.
Supporta le interfacce HAL radio
Per abilitare la funzionalità di selezione dei domini, supporta la seguente radio HAL obbligatoria interfacce:
-
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);
Convalida
Per verificare che il framework di telefonia risponda correttamente alle
interfaccia DomainSelectionService
, esegui i test CTS
DomainSelectionServiceTestOnMockModem