Urządzenia z Androidem 9 mogą rozpoznawać informacje o operatorze subskrypcji i podawać identyfikator oraz nazwę operatora. Android utrzymuje bazę danych identyfikatorów operatorów z regułami dopasowania dotyczącymi każdego operatora i jego unikalnym identyfikatorem. AOSP zawiera zawartość bazy danych identyfikatora operatora w pliku carrier_list.textpb
.
Połączona baza danych minimalizuje duplikowanie logiki w aplikacjach, które muszą identyfikować operatorów, i ogranicza ekspozycję atrybutów identyfikujących operatora.
Aby zwiększyć zasięg i dokładność identyfikacji operatora, Android obsługuje aktualizacje poza pasmem i tablicę identyfikatorów operatora. Każda aktualizacja ma numer wersji i jest publikowana w AOSP.
Implementacja
Użytkownicy, którzy chcą wdrożyć aktualizacje poza zakresem, mogą pobrać plik binarny carrier_list.pb
z AOSP. Aby wyświetlić czytelną wersję tabeli, przejdź do carrier_list.textpb
.
Umieść tabelę identyfikatorów operatora na partycji danych /data/misc/carrierid/
urządzenia. Jeśli tabela identyfikatorów operatorów jest nowsza niż bieżąca wersja, urządzenie zachowa się w niej w klasie bazy danych identyfikatorów operatora.
Najnowsze informacje z bazy danych identyfikatorów przewoźnika są pobierane przez metody publiczne
getSimCarrierId()
i
getSimCarrierIdName()
.
Dodawanie informacji o identyfikatorze operatora do bazy danych
Aby dodać lub zaktualizować identyfikator operatora w bazie danych, prześlij prośbę za pomocą formularza informacji identyfikacyjnych operatora.
Twoja prośba zostanie sprawdzona, a jeśli zostanie zatwierdzona, zmiany zostaną przesłane do bazy kodu AOSP pod adresem carrier_list.pb
.
Następnie możesz skopiować zaktualizowaną listę i włączyć ją w swojej niestandardowym kompilacji.
Zintegruj identyfikatory operatorów z CarrierConfig
Począwszy od Androida 10 konfiguracja operatora obsługuje identyfikatory operatorów jako klucze do pobierania konfiguracji dotyczących poszczególnych operatorów z CarrierService
.
Integrowanie identyfikatorów operatorów z funkcją CarrierConfig
ma te zalety:
- Konsoliduje wszystkie pary MCC/MNC każdego operatora w jednym miejscu, usuwając duplikaty lub niespójne dane.
- Tworzy kanoniczny identyfikator dla każdego operatora i eliminuje niejednoznaczność.
- Umożliwia operatorom wirtualnych sieci komórkowych (MVNO) identyfikowanie się za pomocą indywidualnych identyfikatorów zamiast konfiguracji w ramach operatora sieci komórkowej (MNO).
Migracja danych konfiguracji do identyfikatorów operatorów
Aby przenieść dane konfiguracji z par MCC/MNC do identyfikatorów operatora:
Zgrupuj pliki
carrier_config_mccmnc.xml
od jednego przewoźnika.carrier_list.textpb
służy jako odniesienie do mapowania informacji MCK, MNC i MVNO do konkretnego operatora.Połącz konfiguracje w jeden plik.
(Opcjonalnie) dziedziczenie danych z MNO. MVNO dziedziczą konfiguracje od MNO w pliku
carrier_config_mccmnc.xml
. Identyfikatory operatorów umożliwiają wszystkim operatorom, w tym MVNO, korzystanie z dedykowanego pliku konfiguracyjnego, dlatego zalecamy uwzględnienie danych MNO podczas migracji.Jeśli konfiguracja dla identyfikatora MVNO nie istnieje, pobierz konfigurację z identyfikatora MNO za pomocą
getCarrierIdFromSimMccMnc
.Zmień nazwę nowego pliku na
carrier_config_carrierid_carrierid_carriername.xml
, gdzie carrierid musi odpowiadaćcanonical_id
, a carriername musi odpowiadaćcarrier_name
wcarrier_list.textpb
.