Servizio di selezione domini

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.

architettura-selezione-dominio

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:

  1. Crea un'app per la selezione del dominio. Il servizio deve essere definito nel AndroidManifest.xml.

  2. Aggiungi una configurazione all'overlay del dispositivo per consentire alla piattaforma di eseguire l'associazione alla Implementazione di DomainSelectionService.

  3. 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'autorizzazione BIND_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:

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:

  • IRadioNetwork

    void setEmergencyMode(int serial, EmergencyMode emcModeType);
    void triggerEmergencyNetworkScan(int serial,
            EmergencyNetworkScanTrigger request);
    void cancelEmergencyNetworkScan(int serial, boolean resetScan);
    void exitEmergencyMode(int serial);
    
  • IRadioNetworkIndication

    void emergencyNetworkScanResult(RadioIndicationType type,
            EmergencyRegResult result);
    

Convalida

Per verificare che il framework di telefonia risponda correttamente alle interfaccia DomainSelectionService, esegui i test CTS DomainSelectionServiceTestOnMockModem