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.
Obsługa sieci wielu operatorów
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Urządzenia z Androidem 11 lub nowszym mogą obsługiwać wiele publicznych sieci komórkowych (PLMN). Android 11 zawiera w interfejsach API identyfikacji komórki metody umożliwiające pobieranie informacji o obsługiwanych PLMN komórki, aby odróżniać dostawców usług komórkowych od operatorów sieci.
Obsługa wielu PLMN zapewnia operatorom sieci komórkowych (MNO) elastyczność, ponieważ umożliwia im nadawanie wielu tożsamości. Jest to wymagane głównie w celu obsługi umów o udostępnianiu, w których wspólnego sprzętu lub wież używają różne MNO. W sytuacji, gdy urządzenie decyduje się zarejestrować przy użyciu określonej wieży, wybiera PLMN, którego ma użyć do rejestracji, co blokuje profil urządzenia dla tego PLMN na potrzeby całej późniejszej komunikacji. Metoda getRegisteredPlmn
pobiera zarejestrowany PLMN urządzenia.
Implementacja
Aby obsługiwać wiele PLMN na urządzeniach z Androidem 11 lub nowszym, zaimplementuj te funkcje w tych lokalizacjach:
IRadio
.
IRadio.hal i IRadioResponse.hal
W interfejsie API Radio 1.5, aby obsługiwać wiele PLMN, informacje o sieci, w której urządzenie się rejestruje, są raportowane inaczej niż w poprzednich wersjach. Po pierwsze, zarejestrowany PLMN (RPLMN) jest raportowany oddzielnie, ponieważ w komórkach obsługujących wiele PLMN RPLMN może nie być głównym identyfikatorem PLMN. W strukturach CellIdentity
komórka zawiera podstawowe PLMN-ID oraz listę dodatkowych PLMN-ID. RPLMN musi być identyfikatorem PLMN-ID lub jednym z dodatkowych identyfikatorów PLMN wskazanych w strukturze CellIdentity
.
Zmiany w interfejsie HAL Radio 1.5 mają wpływ na te 2 metody interfejsu HAL: IRadio.hal
(oraz odpowiadające im metody odpowiedzi w IRadioResponse.hal
).
getDataRegState_1_5
i getDataRegStateResult_1_5(RegStateResult
result)
getVoiceRegState_1_5
i getVoiceRegStateResult_1_5(RegStateresult
result)
types.hal
W pliku types.hal
:
ClosedSubscriberGroupInfo
: opcjonalnie dołączane do każdej instancji CellIdentity
. Ta struktura służy do podawania szczegółowych informacji o grupie zamkniętej subskrybentów, do której należy komórka (jeśli taka istnieje). Jest ona często używana do identyfikacji małych komórek, takich jak osobiste urządzenia LTE. Można go też używać w przypadku wdrożeń takich jak CBRS LTE.
CellIdentityLte
: obsługuje listę dodatkowych identyfikatorów PLMN.
CellIdentityWcdma
: obsługuje listę dodatkowych identyfikatorów PLMN.
CellIdentityTdscdma
: obsługuje listę dodatkowych identyfikatorów PLMN.
RegStateResult
: zawiera zaktualizowaną strukturę CellIdentity
oraz pole wskazujące numer RPLMN.
Weryfikacja
Aby przetestować implementację, uruchom ten test CTS:
CellInfoTest
podczas rejestracji w sieci dostępu radiowego multioperatora (MORAN) lub sieci podstawowej multioperatora (MOCN).
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-27 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-27 UTC."],[],[],null,["# Multi-operator network support\n\nDevices launching with Android 11 or higher can provide\nsupport for multiple public land mobile networks (PLMNs). Android\n11 includes methods in the\n[cell identification APIs](https://developer.android.com/reference/android/telephony/CellIdentity)\nto get information about a cell's supported PLMNs to distinguish between\ncellular service providers and network operators.\n\nMulti-PLMN support provides flexibility to mobile network operators (MNOs) by\nallowing them to broadcast multiple identities. This is primarily required to\nsupport sharing agreements where common hardware or towers are used by multiple\nMNOs. In a multi-PLMN scenario, when a device chooses to register using a\nparticular tower, it selects the PLMN to use for that registration, which locks\nthe device's *profile* to that PLMN for all ensuing communication. The\n[`getRegisteredPlmn`](https://developer.android.com/reference/android/telephony/NetworkRegistrationInfo#getRegisteredPlmn())\nmethod retrieves the registered PLMN for the device.\n\nImplementation\n--------------\n\nTo support multi-PLMN on devices running Android 11\nor higher, implement the functions in the following locations in\n[`IRadio`](https://android.googlesource.com/platform/hardware/interfaces/+/refs/heads/android16-release/radio/1.5/).\n\n### IRadio.hal and IRadioResponse.hal\n\nIn the Radio 1.5 HAL, to support multi-PLMN, information about the network the\ndevice registers on is reported differently than previous versions. First, the\nregistered PLMN (RPLMN) is reported separately because on multi-PLMN cells, the\nRPLMN might not be the primary PLMN-ID. And in the `CellIdentity` structures,\nthe cell provides a primary PLMN-ID and a list of additional PLMN-IDs. The RPLMN\nmust be the primary PLMN-ID or one of the additional PLMN-IDs indicated in the\n`CellIdentity` structure.\n\nThe changes in the Radio 1.5 HAL impact the following two HAL methods in\n[`IRadio.hal`](https://android.googlesource.com/platform/hardware/interfaces/+/refs/heads/android16-release/radio/1.5/IRadio.hal)\n(and their corresponding response methods in\n[`IRadioResponse.hal`](https://android.googlesource.com/platform/hardware/interfaces/+/refs/heads/android16-release/radio/1.5/IRadioResponse.hal)).\n\n- `getDataRegState_1_5` and `getDataRegStateResult_1_5(RegStateResult\n result)`\n- `getVoiceRegState_1_5` and `getVoiceRegStateResult_1_5(RegStateresult\n result)`\n\n### types.hal\n\nImplement the following\nin [`types.hal`](https://android.googlesource.com/platform/hardware/interfaces/+/refs/heads/android16-release/radio/1.5/types.hal):\n\n- `ClosedSubscriberGroupInfo`: Included optionally with every `CellIdentity` instance. This structure is used to provide details about the closed subscriber group to which a cell belongs, if any. This is commonly used to identity *small cells* such as personal LTE devices. It can also be used in deployments such as CBRS LTE.\n- `CellIdentityLte`: Supports a list of additional PLMN-IDs.\n- `CellIdentityWcdma`: Supports a list of additional PLMN-IDs.\n- `CellIdentityTdscdma`: Supports a list of additional PLMN-IDs.\n- `RegStateResult`: Includes an updated `CellIdentity` structure and a field to indicate the RPLMN.\n\nValidation\n----------\n\nTo test your implementation, run the following CTS test:\n[`CellInfoTest`](https://android.googlesource.com/platform/cts/+/3c3d33a/tests/tests/telephony/src/android/telephony/cts/CellInfoTest.java)\nwhile registered to a multi-operator radio access network (MORAN) or\nmulti-operator core network (MOCN)."]]