Начиная с 27 марта 2025 г. мы рекомендуем использовать android-latest-release
вместо aosp-main
для создания и участия в AOSP. Дополнительные сведения см. в разделе Изменения в AOSP .
Поддержка сети с несколькими операторами
Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
Устройства, запущенные с Android 11 или выше, могут поддерживать несколько сетей наземной мобильной связи общего пользования (PLMN). Android 11 включает методы в API идентификации соты для получения информации о поддерживаемых сотой PLMN, чтобы различать поставщиков сотовых услуг и операторов сетей.
Поддержка нескольких PLMN обеспечивает гибкость для операторов мобильной связи (MNO), позволяя им транслировать несколько идентификаторов. Это в первую очередь необходимо для поддержки соглашений о совместном использовании, когда общее оборудование или вышки используются несколькими MNO. В сценарии с несколькими PLMN, когда устройство решает зарегистрироваться с использованием определенной вышки, оно выбирает PLMN для использования при этой регистрации, что блокирует профиль устройства для этого PLMN для всех последующих коммуникаций. Метод getRegisteredPlmn
извлекает зарегистрированный PLMN для устройства.
Выполнение
Для поддержки multi-PLMN на устройствах под управлением Android 11 или выше реализуйте функции в следующих местах в IRadio
.
IRadio.hal и IRadioResponse.hal
В Radio 1.5 HAL для поддержки multi-PLMN информация о сети, в которой регистрируется устройство, сообщается иначе, чем в предыдущих версиях. Во-первых, зарегистрированный PLMN (RPLMN) сообщается отдельно, поскольку в ячейках multi-PLMN RPLMN может не быть основным PLMN-ID. А в структурах CellIdentity
ячейка предоставляет основной PLMN-ID и список дополнительных PLMN-ID. RPLMN должен быть основным PLMN-ID или одним из дополнительных PLMN-ID, указанных в структуре CellIdentity
.
Изменения в Radio 1.5 HAL влияют на следующие два метода HAL в IRadio.hal
(и соответствующие им методы ответа в IRadioResponse.hal
).
-
getDataRegState_1_5
и getDataRegStateResult_1_5(RegStateResult result)
-
getVoiceRegState_1_5
и getVoiceRegStateResult_1_5(RegStateresult result)
типы.hal
Реализуйте следующее в types.hal
:
-
ClosedSubscriberGroupInfo
: Включается опционально в каждый экземпляр CellIdentity
. Эта структура используется для предоставления сведений о закрытой группе абонентов, к которой принадлежит ячейка, если таковая имеется. Обычно используется для идентификации небольших ячеек , таких как персональные устройства LTE. Также может использоваться в развертываниях, таких как CBRS LTE. -
CellIdentityLte
: поддерживает список дополнительных PLMN-ID. -
CellIdentityWcdma
: поддерживает список дополнительных идентификаторов PLMN. -
CellIdentityTdscdma
: поддерживает список дополнительных идентификаторов PLMN. -
RegStateResult
: включает обновленную структуру CellIdentity
и поле для указания RPLMN.
Проверка
Чтобы протестировать реализацию, запустите следующий тест CTS: CellInfoTest
во время регистрации в многооператорной сети радиодоступа (MORAN) или многооператорской базовой сети (MOCN).
Контент и образцы кода на этой странице предоставлены по лицензиям. Java и OpenJDK – это зарегистрированные товарные знаки корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-07-29 UTC.
[[["Прост для понимания","easyToUnderstand","thumb-up"],["Помог мне решить мою проблему","solvedMyProblem","thumb-up"],["Другое","otherUp","thumb-up"]],[["Отсутствует нужная мне информация","missingTheInformationINeed","thumb-down"],["Слишком сложен/слишком много шагов","tooComplicatedTooManySteps","thumb-down"],["Устарел","outOfDate","thumb-down"],["Проблема с переводом текста","translationIssue","thumb-down"],["Проблемы образцов/кода","samplesCodeIssue","thumb-down"],["Другое","otherDown","thumb-down"]],["Последнее обновление: 2025-07-29 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)."]]