多运营商网络支持

搭载 Android 11 或更高版本的设备可以提供对多个公共陆地移动网络 (PLMN) 的支持。Android 11 的 Cell Identification 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 必须是 CellIdentity 结构中提供的主要 PLMN-ID 或其他 PLMN-ID 之一。

Radio 1.5 HAL 中的变更会影响 IRadio.hal 中的以下两种 HAL 方法(及其在 IRadioResponse.hal 中对应的响应方法)。

  • getDataRegState_1_5getDataRegStateResult_1_5(RegStateResult result)
  • getVoiceRegState_1_5getVoiceRegStateResult_1_5(RegStateresult result)

types.hal

types.hal 中实现以下函数:

  • ClosedSubscriberGroupInfo:选择性地包含在每个 CellIdentity 实例中。此结构用于提供有关基站所属的封闭式订阅者群组(如果有)的详细信息。这通常用于识别小基站(例如个人 LTE 设备),也可用于 CBRS LTE 等部署。
  • CellIdentityLte:支持列出一系列其他 PLMN-ID。
  • CellIdentityWcdma:支持列出一系列其他 PLMN-ID。
  • CellIdentityTdscdma:支持列出一系列其他 PLMN-ID。
  • RegStateResult:包括一个经过更新的 CellIdentity 结构和一个用于指示 RPLMN 的字段。

验证

如需测试您的实现情况,请在注册多运营商无线接入网络 (MORAN) 或多运营商核心网络 (MOCN) 时运行以下 CTS 测试:CellInfoTest