支援多個營運商的網路

搭載 Android 11 以上版本的裝置可支援多個公開陸地行動網路 (PLMN)。Android 11 的小區識別 API 包含方法,可取得小區支援的 PLMN 相關資訊,以區分行動網路服務供應商和網路作業員。

多 PLMN 支援功能可讓行動網路業者 (MNO) 廣播多個 ID,提供彈性。這項功能主要用於支援共用協議,也就是多個 MNO 共用常見硬體或塔台的情況。在多 PLMN 情況下,當裝置選擇使用特定塔台註冊時,會選取要用於註冊的 PLMN,並將裝置的 設定檔鎖定至該 PLMN,以便進行後續通訊。getRegisteredPlmn 方法會擷取裝置註冊的 PLMN。

實作

如要在搭載 Android 11 以上版本的裝置上支援多個 PLMN,請在 IRadio 的下列位置實作這些函式。

IRadio.hal 和 IRadioResponse.hal

在無線電 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 的變更會影響 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