Les appareils équipés d'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 qui en découlent. 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 la HAL Radio 1.5, pour prendre en charge plusieurs PLMN, les informations concernant le réseau sur lequel l'appareil s'enregistre ne sont pas les mêmes que celles des 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
etgetDataRegStateResult_1_5(RegStateResult result)
getVoiceRegState_1_5
etgetVoiceRegStateResult_1_5(RegStateresult result)
types.hal
Implémentez les éléments suivants dans types.hal
:
ClosedSubscriberGroupInfo
: inclus de manière facultative avec chaque instanceCellIdentity
. Cette structure est utilisée pour fournir des détails sur le groupe d'abonnés fermé auquel appartient une cellule, 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
: accepte une liste d'ID PLMN supplémentaires.CellIdentityTdscdma
: prend en charge une liste d'ID PLMN supplémentaires.RegStateResult
: inclut une structureCellIdentity
mise à jour et un champ pour indiquer le RPLMN.
Validation
Pour tester votre implémentation, exécutez le test CTS suivant : CellInfoTest
lorsque vous êtes enregistré auprès d'un réseau d'accès radio multi-opérateur (MORAN) ou d'un réseau central multi-opérateur (MOCN).