Od 27 marca 2025 r. zalecamy używanie android-latest-release
zamiast aosp-main
do kompilowania i wspołtworzenia AOSP. Więcej informacji znajdziesz w artykule o zmianach w AOSP.
Identyfikacja operatora
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Urządzenia z Androidem 9 mogą rozpoznawać informacje o subskrypcji operatora, aby udostępnić identyfikator i nazwę operatora. Android zarządza bazą danych identyfikatorów operatorów z zasadami dopasowywania dla każdego operatora i jego unikalnego identyfikatora. AOSP zawiera zawartość bazy danych identyfikatorów 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ą wdrażać aktualizacje poza pasmem, mogą pobrać binarne pliki carrier_list.pb
z AOSP. Aby wyświetlić czytelną wersję tabeli, przejdź do sekcji carrier_list.textpb
.
Umieść tabelę identyfikatorów operatora na partycji danych /data/misc/carrierid/
urządzenia. Jeśli tabela identyfikatora operatora jest nowsza niż jej obecna wersja, urządzenie zapisuje ją w klasie bazy danych identyfikatora operatora.
Najnowsze informacje z bazy danych identyfikatorów przewoźnika są pobierane przez publiczne metody:
getSimCarrierId()
i
getSimCarrierIdName()
.
Aby dodać lub zaktualizować identyfikator przewoźnika w bazie danych, prześlij prośbę za pomocą formularza identyfikacji przewoźnika.
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 umieścić ją w swoim niestandardowym kompilacji.
Integrowanie identyfikatorów operatora za pomocą CarrierConfig
Od Androida 10 konfiguracja operatora obsługuje identyfikatory operatorów jako klucze do pobierania konfiguracji dotyczących poszczególnych operatorów z CarrierService
.
Integracja identyfikatorów operatora z CarrierConfig
ma te zalety:
- konsoliduje wszystkie pary MCC/MNC dla 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 operatora
Aby przenieść dane konfiguracji z par MCC/MNC do identyfikatorów operatora:
Zgrupuj pliki carrier_config_mccmnc.xml
od jednego przewoźnika.
Użyj pliku carrier_list.textpb
jako odniesienia do zmapowania informacji o MCC, MNC i MVNO do konkretnego operatora.
Połącz konfiguracje w jeden plik.
(Opcjonalnie) dziedziczenie danych z MNO. MVNO dziedziczą konfiguracje z MNO w starszym 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
w carrier_list.textpb
.
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-07-26 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 2025-07-26 UTC."],[],[],null,["# Carrier identification\n\nDevices running Android 9 can recognize subscription\ncarrier information to\nprovide an ID and a carrier name. Android maintains a carrier ID database, with\nmatching rules for each carrier and its unique carrier ID. AOSP includes the\ncontent of the carrier ID database, in the file\n[`carrier_list.textpb`](https://android.googlesource.com/platform/packages/providers/TelephonyProvider/+/android16-release/assets/latest_carrier_id/carrier_list.textpb).\nThe unified database minimizes duplicate logic in apps that need to identify\ncarriers and limits the exposure of carrier-identifying attributes.\n\nTo improve the coverage and accuracy of carrier identification, Android supports\nout-of-band and carrier ID table updates. Each update comes with a version\nnumber and is published to AOSP.\n\nImplementation\n--------------\n\nUsers who want to implement out-of-band updates can download the\n[`carrier_list.pb`](https://android.googlesource.com/platform/packages/providers/TelephonyProvider/+/android16-release/assets/latest_carrier_id/carrier_list.pb)\nbinary from AOSP. To view the readable format of the table, see\n[`carrier_list.textpb`](https://android.googlesource.com/platform/packages/providers/TelephonyProvider/+/android16-release/assets/latest_carrier_id/carrier_list.textpb).\n\nPlace the carrier ID table in the `/data/misc/carrierid/` data partition of the\ndevice. If the carrier ID table is newer than the existing version, the device\npersists the table to the\n[carrier ID database class](https://developer.android.com/reference/android/provider/Telephony.CarrierId).\nThe most recent information from the carrier ID database is picked up by the\npublic methods\n[`getSimCarrierId()`](https://developer.android.com/reference/android/telephony/TelephonyManager#getSimCarrierId())\nand\n[`getSimCarrierIdName()`](https://developer.android.com/reference/android/telephony/TelephonyManager#getSimCarrierIdName()).\n\nAdd carrier ID information to the database\n------------------------------------------\n\nTo add or update a carrier ID to the database, submit a request using the\n[Carrier identification information form](https://docs.google.com/forms/d/1KjwTaExKRjkE9tbR9yavBrGzwvuz1dNku2Ae_7GrdUQ/viewform?edit_requested=true).\n\nYour request is reviewed and if approved, the change is pushed to the AOSP code\nbase at\n[`carrier_list.pb`](https://android.googlesource.com/platform/packages/providers/TelephonyProvider/+/android16-release/assets/latest_carrier_id/carrier_list.pb).\nYou can then copy the updated list and incorporate it into your customized\nbuild.\n\nIntegrate carrier IDs with CarrierConfig\n----------------------------------------\n\nStarting from Android 10,\n[carrier configuration](/docs/core/connect/carrier) supports\nusing carrier IDs as keys to fetch carrier-specific configurations from\n[`CarrierService`](https://developer.android.com/reference/android/service/carrier/CarrierService).\n\nIntegrating carrier IDs with `CarrierConfig` has the following advantages:\n\n- Consolidates all MCC/MNC pairs for each carrier into a single location removing duplicate or inconsistent data.\n- Creates a canonical identifier for each carrier and removes ambiguity.\n- Allows mobile virtual network operators (MVNOs) to be identified with individual IDs instead of having configurations as part of a mobile network operator (MNO).\n\n### Migrate configuration data to carrier IDs\n\nTo migrate configuration data from MCC/MNC pairs to carrier IDs, follow\nthese steps:\n\n1. Group the `carrier_config_mccmnc.xml` files from a single carrier together.\n Use\n [`carrier_list.textpb`](https://android.googlesource.com/platform/packages/providers/TelephonyProvider/+/android16-release/assets/latest_carrier_id/carrier_list.textpb)\n as a reference to map the MCC, MNC, and MVNO information to a particular\n carrier.\n\n2. Merge the configurations into a single file.\n\n3. (Optional) Inherit data from MNOs. MVNOs inherit configurations from\n MNOs in the legacy `carrier_config_mccmnc.xml` file. Because carrier IDs\n allow all carriers including MVNOs to have a dedicated config file, it's\n recommended to include MNO data during migration.\n\n4. If the configuration for an MVNO carrier ID doesn't exist, fetch the\n configuration from its MNO carrier ID using\n [`getCarrierIdFromSimMccMnc`](https://developer.android.com/reference/android/telephony/TelephonyManager#getCarrierIdFromSimMccMnc()).\n\n5. Rename the new file as\n `carrier_config_carrierid_`\u003cvar translate=\"no\"\u003ecarrierid\u003c/var\u003e`_`\u003cvar translate=\"no\"\u003ecarriername\u003c/var\u003e`.xml`\n where \u003cvar translate=\"no\"\u003ecarrierid\u003c/var\u003e must correspond to a `canonical_id` and\n \u003cvar translate=\"no\"\u003ecarriername\u003c/var\u003e should correspond to a `carrier_name` in\n [`carrier_list.textpb`](https://android.googlesource.com/platform/packages/providers/TelephonyProvider/+/android16-release/assets/latest_carrier_id/carrier_list.textpb)\n\n| **Note:** If a `carrier_config_mccmnc` file doesn't have a matching carrier ID, submit a request to add a carrier ID by following the steps in [Adding carrier ID information to the database](#adding_carrier_id_information_to_the_database)."]]