Urządzenia z Androidem 9 mogą rozpoznawać informacje o subskrypcji operatora, aby podać identyfikator i nazwę operatora. Android prowadzi bazę danych identyfikatorów operatorów z regułami dopasowywania dla każdego operatora i jego unikalnego identyfikatora. AOSP zawiera zawartość bazy danych identyfikatorów operatorów w pliku carrier_list.textpb
.
Ujednolicona baza danych minimalizuje zduplikowaną logikę w aplikacjach, które muszą identyfikować operatorów, i ogranicza ekspozycję atrybutów identyfikujących operatorów.
Aby zwiększyć zasięg i dokładność identyfikacji operatora, Android obsługuje aktualizacje tabeli identyfikatorów operatorów i aktualizacje poza pasmem. Każda aktualizacja ma numer wersji i jest publikowana w AOSP.
Implementacja
Użytkownicy, którzy chcą wdrożyć aktualizacje poza pasmem, mogą pobrać plik binarny
carrier_list.pb
z AOSP. Aby wyświetlić tabelę w czytelnym formacie, kliknij carrier_list.textpb
.
Umieść tabelę identyfikatorów operatorów w /data/misc/carrierid/
partycji danych urządzenia. Jeśli tabela identyfikatorów operatorów jest nowsza od istniejącej wersji, urządzenie zapisuje ją w klasie bazy danych identyfikatorów operatorów.
Najnowsze informacje z bazy danych identyfikatorów przewoźników są pobierane przez metody publiczne
getSimCarrierId()
i
getSimCarrierIdName()
.
Dodawanie informacji o identyfikatorze operatora do bazy danych
Aby dodać lub zaktualizować identyfikator przewoźnika w bazie danych, prześlij prośbę za pomocą formularza informacji identyfikacyjnych przewoźnika.
Twoja prośba zostanie sprawdzona, a jeśli zostanie zatwierdzona, zmiana zostanie przesłana do bazy kodu AOSP na stronie carrier_list.pb
.
Następnie możesz skopiować zaktualizowaną listę i uwzględnić ją w swojej niestandardowej kompilacji.
Integracja identyfikatorów operatorów z CarrierConfig
Od Androida 10 konfiguracja operatora obsługuje używanie identyfikatorów operatora jako kluczy do pobierania konfiguracji specyficznych dla operatora z CarrierService
.
Integracja identyfikatorów operatorów z CarrierConfig
ma te zalety:
- Łączy wszystkie pary MCC/MNC dla każdego operatora w jednym miejscu, usuwając zduplikowane lub niespójne dane.
- Tworzy kanoniczny identyfikator każdego przewoźnika i usuwa niejednoznaczność.
- Umożliwia identyfikowanie operatorów wirtualnych sieci komórkowych (MVNO) za pomocą indywidualnych identyfikatorów zamiast konfiguracji w ramach operatora sieci komórkowej (MNO).
Migracja danych konfiguracyjnych na identyfikatory operatorów
Aby przenieść dane konfiguracyjne z par MCC/MNC na identyfikatory operatorów, wykonaj te czynności:
Grupuj pliki
carrier_config_mccmnc.xml
od jednego operatora. Użyjcarrier_list.textpb
jako odniesienia do zmapowania informacji o MCC, MNC i MVNO na konkretnego operatora.Scal konfiguracje w jeden plik.
(Opcjonalnie) Dziedziczenie danych od operatorów sieci komórkowych. Operatorzy MVNO dziedziczą konfiguracje od operatorów MNO w starszym pliku
carrier_config_mccmnc.xml
. Identyfikatory operatorów umożliwiają wszystkim operatorom, w tym MVNO, posiadanie dedykowanego pliku konfiguracyjnego, dlatego zalecamy uwzględnienie danych MNO podczas migracji.Jeśli konfiguracja identyfikatora operatora MVNO nie istnieje, pobierz konfigurację z identyfikatora operatora MNO za pomocą funkcji
getCarrierIdFromSimMccMnc
.Zmień nazwę nowego pliku na
carrier_config_carrierid_carrierid_carriername.xml
gdzie carrierid musi odpowiadaćcanonical_id
, a carriername musi odpowiadaćcarrier_name
w zasadziecarrier_list.textpb
.