A partir del 27 de marzo de 2025, te recomendamos que uses android-latest-release
en lugar de aosp-main
para compilar y contribuir a AOSP. Para obtener más información, consulta Cambios en AOSP.
Compatibilidad con redes de varios operadores
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Los dispositivos que se lanzan con Android 11 o versiones posteriores pueden admitir varias redes móviles públicas terrestres (PLMN). Android 11 incluye métodos en las APIs de identificación de celdas para obtener información sobre los PLMN compatibles de una celda y distinguir entre los proveedores de servicios celulares y los operadores de red.
La compatibilidad con varias PLMN proporciona flexibilidad para los operadores de redes móviles (MNO), ya que les permite transmitir varias identidades. Esto es necesario principalmente para admitir acuerdos de uso compartido en los que varias MNO usan torres o hardware comunes. En una situación de varias PLMN, cuando un dispositivo elige registrarse con una torre en particular, selecciona la PLMN que se usará para ese registro, lo que bloquea el perfil del dispositivo en esa PLMN para todas las comunicaciones posteriores. El método getRegisteredPlmn
recupera el PLMN registrado para el dispositivo.
Implementación
Para admitir varias PLMN en dispositivos que ejecutan Android 11 o versiones posteriores, implementa las funciones en las siguientes ubicaciones en IRadio
.
IRadio.hal y IRadioResponse.hal
En el HAL de Radio 1.5, para admitir varios PLMN, la información sobre la red en la que se registra el dispositivo se informa de manera diferente a las versiones anteriores. En primer lugar, el PLMN registrado (RPLMN) se informa por separado porque, en las celdas de varios PLMN, es posible que el RPLMN no sea el ID de PLMN principal. Y en las estructuras CellIdentity
, la celda proporciona un PLMN-ID principal y una lista de PLMN-ID adicionales. El RPLMN debe ser el PLMN-ID principal o uno de los PLMN-ID adicionales indicados en la estructura CellIdentity
.
Los cambios en el HAL de Radio 1.5 afectan a los siguientes dos métodos de HAL en IRadio.hal
(y a sus métodos de respuesta correspondientes en IRadioResponse.hal
).
getDataRegState_1_5
y getDataRegStateResult_1_5(RegStateResult
result)
getVoiceRegState_1_5
y getVoiceRegStateResult_1_5(RegStateresult
result)
types.hal
Implementa lo siguiente en types.hal
:
ClosedSubscriberGroupInfo
: Se incluye de forma opcional con cada instancia de CellIdentity
. Esta estructura se usa para proporcionar detalles sobre el grupo de suscriptores cerrado al que pertenece una celda, si corresponde. Por lo general, se usa para identificar células pequeñas, como dispositivos LTE personales. También se puede usar en implementaciones como CBRS LTE.
CellIdentityLte
: Admite una lista de IDs de PLMN adicionales.
CellIdentityWcdma
: Admite una lista de IDs de PLMN adicionales.
CellIdentityTdscdma
: Admite una lista de IDs de PLMN adicionales.
RegStateResult
: Incluye una estructura CellIdentity
actualizada y un campo para indicar el RPLMN.
Validación
Para probar tu implementación, ejecuta la siguiente prueba de CTS: CellInfoTest
mientras está registrada en una red de acceso por radio multioperador (MORAN) o una red principal multioperador (MOCN).
El contenido y las muestras de código que aparecen en esta página están sujetas a las licencias que se describen en la Licencia de Contenido. Java y OpenJDK son marcas registradas de Oracle o sus afiliados.
Última actualización: 2025-07-27 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 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)."]]