À partir du 27 mars 2025, nous vous recommandons d'utiliser android-latest-release
au lieu de aosp-main
pour créer et contribuer à AOSP. Pour en savoir plus, consultez la section Modifications apportées à AOSP.
Compatibilité avec les réseaux multi-opérateurs
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Les appareils lancés avec Android 11 ou version ultérieure peuvent prendre en charge plusieurs réseaux mobiles terrestres publics (PLMN). Android 11 inclut des méthodes dans les API d'identification de la cellule pour obtenir des informations sur les PLMN compatibles d'une cellule afin de distinguer les fournisseurs de services mobiles et les opérateurs de réseau.
La prise en charge de plusieurs PLMN offre aux opérateurs de réseaux mobiles (MNO) une flexibilité en leur permettant de diffuser plusieurs identités. Cela est principalement nécessaire pour prendre en charge les accords de partage dans lesquels du matériel ou des tours communs sont utilisés par plusieurs MNO. Dans un scénario multi-PLMN, lorsqu'un appareil choisit de s'enregistrer à l'aide d'une antenne spécifique, il sélectionne le PLMN à utiliser pour cet enregistrement, ce qui verrouille le profil de l'appareil sur ce PLMN pour toutes les communications ultérieures. La méthode getRegisteredPlmn
récupère le PLMN enregistré pour l'appareil.
Implémentation
Pour prendre en charge le multi-PLMN sur les appareils équipés d'Android 11 ou version ultérieure, implémentez les fonctions aux emplacements suivants dans IRadio
.
IRadio.hal et IRadioResponse.hal
Dans le HAL Radio 1.5, pour prendre en charge le multi-PLMN, les informations sur le réseau sur lequel l'appareil s'enregistre sont signalées différemment que dans les versions précédentes. Tout d'abord, le PLMN enregistré (RPLMN) est enregistré séparément, car dans les cellules multi-PLMN, le RPLMN peut ne pas être l'ID PLMN principal. Dans les structures CellIdentity
, la cellule fournit un ID PLMN principal et une liste d'ID PLMN supplémentaires. Le RPLMN doit être l'ID PLMN principal ou l'un des ID PLMN supplémentaires indiqués dans la structure CellIdentity
.
Les modifications apportées au HAL Radio 1.5 ont une incidence sur les deux méthodes HAL suivantes dans IRadio.hal
(et sur les méthodes de réponse correspondantes dans IRadioResponse.hal
).
getDataRegState_1_5
et getDataRegStateResult_1_5(RegStateResult
result)
getVoiceRegState_1_5
et getVoiceRegStateResult_1_5(RegStateresult
result)
types.hal
Implémentez les éléments suivants dans types.hal
:
ClosedSubscriberGroupInfo
: inclus de manière facultative avec chaque instance CellIdentity
. Cette structure permet de fournir des informations sur le groupe d'abonnés fermé auquel une cellule appartient, le cas échéant. Cette méthode est couramment utilisée pour identifier les petites cellules telles que les appareils LTE personnels. Il peut également être utilisé dans des déploiements tels que CBRS LTE.
CellIdentityLte
: prend en charge une liste d'ID PLMN supplémentaires.
CellIdentityWcdma
: prend en charge une liste d'ID PLMN supplémentaires.
CellIdentityTdscdma
: prend en charge une liste d'ID PLMN supplémentaires.
RegStateResult
: inclut une structure CellIdentity
mise à jour et un champ pour indiquer le RPLMN.
Validation
Pour tester votre implémentation, exécutez le test CTS suivant :
CellInfoTest
alors qu'il est enregistré sur un réseau d'accès radio multi-opérateur (MORAN) ou un réseau de cœur multi-opérateur (MOCN).
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/27 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 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)."]]