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 cellule pour obtenir des informations sur les PLMN pris en charge par une cellule afin de distinguer les fournisseurs de services cellulaires des opérateurs de réseau.
La prise en charge multi-PLMN offre de la flexibilité aux opérateurs de réseaux mobiles (MNO) en leur permettant de diffuser plusieurs identités. Ceci 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 ORM. Dans un scénario multi-PLMN, lorsqu'un appareil choisit de s'enregistrer à l'aide d'une tour particulière, 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 le périphérique.
Mise en œuvre
Pour prendre en charge plusieurs PLMN sur les appareils exécutant Android 11 ou version ultérieure, implémentez les fonctions aux emplacements suivants dans IRadio
.
IRadio.hal et IRadioResponse.hal
Dans Radio 1.5 HAL, pour prendre en charge le multi-PLMN, les informations sur le réseau sur lequel l'appareil s'enregistre sont rapportées différemment des versions précédentes. Premièrement, le PLMN enregistré (RPLMN) est signalé séparément car sur les cellules multi-PLMN, le RPLMN peut ne pas être l'ID PLMN principal. Et dans les structures CellIdentity
, la cellule fournit un PLMN-ID principal et une liste de PLMN-ID supplémentaires. Le RPLMN doit être le PLMN-ID principal ou l’un des PLMN-ID supplémentaires indiqués dans la structure CellIdentity
.
Les modifications apportées au HAL Radio 1.5 ont un impact sur les deux méthodes HAL suivantes dans IRadio.hal
(et leurs 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 ce qui suit dans types.hal
:
-
ClosedSubscriberGroupInfo
: inclus en option avec chaque instanceCellIdentity
. Cette structure est utilisée pour fournir des détails sur le groupe fermé d'abonnés auquel appartient une cellule, le cas échéant. Ceci est couramment utilisé 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 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é sur un réseau d'accès radio multi-opérateur (MORAN) ou un réseau central multi-opérateur (MOCN).