Android 12 introduce il supporto di un unico modello di registrazione per fornire funzionalità MMTEL e RCS. Questo modello consente ai dispositivi di gestire tutte le funzionalità IMS tramite una singola registrazione IMS fornita da ImsService del dispositivo e di rispettare i requisiti introdotti da alcuni operatori di telecomunicazioni. Rispetto a un modello di doppia registrazione, in cui più registrazioni IMS vengono gestite su un unico dispositivo, la registrazione singola riduce il traffico sulla rete dell'operatore e aumenta l'affidabilità.
Android 12 supporta questo modello di registrazione singola
tramite un'architettura con un
insieme di API che consentono allo stack di telefonia AOSP di gestire sia le funzionalità MMTEL
fornite da
ImsService
sia le funzionalità RCS fornite dall'app di messaggistica RCS selezionata dall'utente. Per supportare la registrazione singola IMS, i produttori di dispositivi e i fornitori di SoC devono implementare queste API per attivare le funzionalità RCS nell'app di messaggistica RCS selezionata dall'utente.
La Figura 1 illustra lo stack IMS del dispositivo quando si utilizza il modello di registrazione singola IMS. Tutte le app IMS utilizzano ImsService predefinito del dispositivo per le funzionalità MMTEL e RCS con una singola registrazione IMS. Ciò include il provisioning, l'inoltro dei messaggi SIP e lo scambio delle funzionalità utente RCS.
Figura 1. Architettura del modello di registrazione singola
Android 11 e versioni precedenti supportano solo un modello di doppia registrazione per fornire le funzionalità MMTEL e RCS, in cui MMTEL è fornito da ImsService del dispositivo e le funzionalità RCS sono implementate over-the-top e gestiscono il proprio stack IMS e la connessione alla rete dell'operatore in modo indipendente.
La Figura 2 illustra l'architettura del modello di doppia registrazione. In questo modello, ogni app è responsabile della connessione alla rete dell'operatore e della creazione di una registrazione IMS per le funzionalità MMTEL e RCS. L'ImsService del dispositivo implementa MMTEL, utilizza la connessione dati IMS del dispositivo alla rete dell'operatore e funziona indipendentemente dalle altre app RCS.
Figura 2. Architettura del modello di doppia registrazione
API di registrazione singola IMS
I dispositivi che rientrano nei carrier che richiedono la registrazione singola IMS devono supportare
le API di registrazione singola IMS e definire la funzionalità Android
PackageManager#FEATURE_TELEPHONY_IMS_SINGLE_REGISTRATION
.
La Figura 3 mostra le API che supportano la registrazione singola IMS.
Figura 3. Superfici API di alto livello che supportano la registrazione singola IMS
I dispositivi Android che supportano la registrazione singola IMS come parte dello stack di telefonia AOSP devono supportare tutte le API AOSP descritte nella tabella seguente.
Area della superficie API | API dell'app RCS | API IMS fornitore | Descrizione |
---|---|---|---|
Provisioning RCS | ProvisioningManager | ImsConfigImplBase | Consente a un OEM o a un operatore di fornire un'app per aggiornare lo stato di provisioning RCS se l'operatore utilizza un meccanismo di autorizzazione proprietario. Il servizio ImsService deve supportare anche il server di configurazione automatica (ACS) standard per il provisioning per gli operatori che non utilizzano un meccanismo proprietario. |
Inoltro dei messaggi SIP | SipDelegateManager | SipTransportImplBase | Consente a un'app RCS di associare prima tag di funzionalità RCS specifici al
dispositivo ImsService , quindi inviare e ricevere messaggi SIP e
aggiornamenti della registrazione IMS associati a questi tag di funzionalità RCS. |
Notifiche dedicate per i titolari | ConnectivityManager | DataCallResponse | Consente a un'app di ascoltare le notifiche QoS su un socket associato a una porta locale specifica. |
Autenticazione GBA | bootstrapAuthenticationRequest | GbaService | Consente a un'app RCS di autenticarsi con la rete e accedere alle chiavi utilizzate per le funzionalità RCS come il trasferimento di file. |
Scambio di funzionalità utente RCS | ImsRcsManager | RcsCapabilityExchangeImplBase | Fornisce ad AOSP la possibilità di inviare le proprie funzionalità MMTEL e RCS al vendor ImsService in modo che possano essere pubblicate in un'unica entità per lo scambio di funzionalità utente RCS con la rete. Consente inoltre ad altre app interessate alle funzionalità RCS di uno o più contatti di eseguire query sulla rete per le funzionalità RCS dei contatti. |
Sicurezza e autorizzazioni
Android 12 introduce le seguenti autorizzazioni per garantire l'accesso sicuro alla rete dell'operatore e ai dati dell'utente:
android.permission.PERFORM_IMS_SINGLE_REGISTRATION
android.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE
L'autorizzazione
android.permission.PERFORM_IMS_SINGLE_REGISTRATION
deve essere definita dall'app di messaggistica con le funzionalità RCS. Affinché questa
autorizzazione venga concessa, devono verificarsi le seguenti condizioni:
- L'app deve essere installata come app privilegiata, ovvero è preinstallata sul dispositivo e può accedere alle autorizzazioni privilegiate
- L'app deve essere impostata come ruolo SMS predefinito dell'utente utilizzando
RoleManager
Se entrambe queste condizioni non vengono soddisfatte, l'app non può accedere all'autorizzazione
android.permission.PERFORM_IMS_SINGLE_REGISTRATION
. Ciò significa che le app di terze parti non possono accedere alle API di registrazione singola RCS perché richiedono la certificazione dell'operatore sul dispositivo.
L'autorizzazione
android.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE
se concessa a un'app che dispone anche dell'autorizzazione READ_CONTACTS
consente all'app di richiedere le funzionalità RCS dei numeri di telefono utilizzando
RcsUceAdapter
.
Affinché questa autorizzazione venga concessa, devono verificarsi le seguenti condizioni:
- L'app deve essere installata come app privilegiata, il che significa che è preinstallata sul dispositivo e può accedere alle autorizzazioni privilegiate.
L'app deve essere definita come uno dei seguenti ruoli
RoleManager
:- App di messaggistica predefinita: impostata dall'utente.
- App connessione a internet predefinita: impostata dall'utente.
- App Contatti predefinita: un ruolo introdotto in Android 12 che
consente all'OEM di definire un nome pacchetto tramite il
valore di overlay del dispositivo
config_systemContacts
, che deve corrispondere all'app Contatti del dispositivo. A questa app viene quindi assegnato il ruolo Contatti.
Per accedere all'APN IMS utilizzando ConnectivityManager
per configurare e gestire il traffico di dati, le app devono richiedere anche l'autorizzazione android.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS
.
Esempi e origine
Android fornisce un'app in AOSP che implementa un'app di messaggistica di test con supporto di base
per la messaggistica RCS a scopo di test e sviluppo. Puoi trovare l'app
all'indirizzo
testapps/TestRcsApp
.
Quando l'app viene installata su un dispositivo, può essere impostata come app di messaggistica predefinita dell'utente e disporrà delle autorizzazioni necessarie per accedere alle API di registrazione singola IMS.
Android fornisce anche un'implementazione di esempio di ImsService per RCS. Il codice
sorgente si trova
all'indirizzo
/testapps/ImsTestService
.
Implementazione
Per maggiori dettagli sull'implementazione, scarica Registrazione singola IMS in Android.
Convalida
Per convalidare l'implementazione della registrazione singola IMS:
- Assicurati che la suite di test CTS CtsTelephonyTestCases venga superata.
- Installa ed esegui TestRcsApp per eseguire scenari di test di registrazione singola di base durante l'integrazione.
- Supera la certificazione dell'operatore per gli scenari di test di registrazione singola IMS.