I dispositivi con Android 9 possono riconoscere le informazioni sull'operatore in abbonamento per fornire un ID e un nome dell'operatore. Android mantiene un database di ID operatore, con regole di corrispondenza per ciascun operatore e il suo ID operatore univoco. AOSP include il contenuto del database dell'ID vettore, nel file carrier_list.textpb
. Il database unificato riduce al minimo la logica duplicata nelle app che devono identificare i vettori e limita l'esposizione degli attributi di identificazione del vettore.
Per migliorare la copertura e l'accuratezza dell'identificazione dell'operatore, Android supporta gli aggiornamenti fuori banda e la tabella degli ID dell'operatore. Ogni aggiornamento viene fornito con un numero di versione e viene pubblicato su AOSP.
Implementazione
Gli utenti che desiderano implementare aggiornamenti fuori banda possono scaricare il binario carrier_list.pb
da AOSP. Per visualizzare il formato leggibile della tabella, vedere carrier_list.textpb
.
Posizionare la tabella dell'ID del vettore nella partizione /data/misc/carrierid/
data del dispositivo. Se la tabella dell'ID del vettore è più recente della versione esistente, il dispositivo mantiene la tabella nella classe del database dell'ID del vettore . Le informazioni più recenti dal database dell'ID vettore vengono raccolte dai metodi pubblici getSimCarrierId()
e getSimCarrierIdName()
.
Aggiunta delle informazioni sull'ID del vettore al database
Per aggiungere o aggiornare un ID vettore al database, invia una richiesta utilizzando il modulo Informazioni sull'identificazione del vettore .
La tua richiesta viene esaminata e, se approvata, la modifica viene inviata alla codebase AOSP su carrier_list.pb
. È quindi possibile copiare l'elenco aggiornato e incorporarlo nella build personalizzata.
Integrazione degli ID vettore con CarrierConfig
A partire da Android 10, la configurazione dell'operatore supporta l'utilizzo degli ID dell'operatore come chiavi per recuperare le configurazioni specifiche dell'operatore da CarrierService
.
L'integrazione degli ID vettore con CarrierConfig
presenta i seguenti vantaggi:
- Consolida tutte le coppie MCC/MNC per ciascun vettore in un'unica posizione rimuovendo i dati duplicati o incoerenti.
- Crea un identificatore canonico per ciascun vettore e rimuove l'ambiguità.
- Consente di identificare gli operatori di rete virtuale mobile (MVNO) con ID individuali invece di avere configurazioni come parte di un operatore di rete mobile (MNO).
Migrazione dei dati di configurazione agli ID operatore
Per migrare i dati di configurazione dalle coppie MCC/MNC agli ID operatore, attenersi alla seguente procedura:
Raggruppa insieme i file
carrier_config_mccmnc.xml
di un unico vettore. Utilizzacarrier_list.textpb
come riferimento per mappare le informazioni MCC, MNC e MVNO su un determinato vettore.Unisci le configurazioni in un unico file.
(Facoltativo) Eredita i dati dagli MNO. Gli MVNO ereditano le configurazioni dagli MNO nel file
carrier_config_mccmnc.xml
legacy. Poiché gli ID operatore consentono a tutti gli operatori, inclusi gli MVNO, di disporre di un file di configurazione dedicato, si consiglia di includere i dati MNO durante la migrazione.Se la configurazione per un ID operatore MVNO non esiste, recupera la configurazione dall'ID operatore MNO utilizzando
getCarrierIdFromSimMccMnc
.Rinominare il nuovo file come
carrier_config_carrierid_ carrierid _ carriername .xml
dove carrierid deve corrispondere acanonical_id
e carriername deve corrispondere acarrier_name
incarrier_list.textpb