搭载 Android 11 或更高版本的设备可以支持多个公共陆地移动网络 (PLMN)。 Android 11 在小区识别 API中包含一些方法,用于获取有关小区支持的 PLMN 的信息,以区分蜂窝服务提供商和网络运营商。
多 PLMN 支持通过允许移动网络运营商 (MNO) 广播多个身份,为他们提供了灵活性。这主要用于支持多个 MNO 使用通用硬件或塔的共享协议。在多 PLMN 场景中,当设备选择使用特定塔进行注册时,它会选择用于该注册的 PLMN,这会将设备的配置文件锁定到该 PLMN 以进行所有后续通信。 getRegisteredPlmn
方法检索设备的注册 PLMN。
执行
要在运行 Android 11 或更高版本的设备上支持多 PLMN,请在IRadio
中的以下位置实现功能。
IRadio.hal 和 IRadioResponse.hal
在 Radio 1.5 HAL 中,为了支持多 PLMN,设备注册的网络信息的报告方式与以前的版本不同。首先,注册的 PLMN (RPLMN) 是单独报告的,因为在多 PLMN 小区上,RPLMN 可能不是主要的 PLMN-ID。在CellIdentity
结构中,小区提供了一个主要的 PLMN-ID 和一个附加 PLMN-ID 的列表。 RPLMN 必须是主 PLMN-ID 或CellIdentity
结构中指示的附加 PLMN-ID 之一。
Radio 1.5 HAL 中的更改会影响IRadioResponse.hal
中的以下两种 HAL 方法(以及它们在IRadio.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-ID 的列表。 -
CellIdentityTdscdma
:支持附加 PLMN-ID 的列表。 -
RegStateResult
:包括更新的CellIdentity
结构和指示 RPLMN 的字段。
验证
要测试您的实施,请运行以下 CTS 测试:注册到多运营商无线接入网络 (MORAN) 或多运营商核心网络 (MOCN) 时的CellInfoTest
。