運行 Android 9 的裝置可以識別訂閱運營商資訊以提供 ID 和運營商名稱。 Android 維護一個運營商 ID 資料庫,其中包含每個運營商及其唯一運營商 ID 的匹配規則。 AOSP 在檔案carrier_list.textpb
中包含運營商 ID 資料庫的內容。統一資料庫最大限度地減少了需要識別運營商的應用程式中的重複邏輯,並限制了運營商識別屬性的暴露。
為了提高運營商識別的覆蓋範圍和準確性,Android 支援帶外和運營商 ID 表更新。每個更新都帶有版本號並發佈到 AOSP。
執行
想要實作帶外更新的使用者可以從 AOSP 下載carrier_list.pb
二進位。若要查看表格的可讀格式,請參閱carrier_list.textpb
。
將運營商ID表放置在設備的/data/misc/carrierid/
data分區。如果運營商 ID 表比現有版本新,設備會將該表保留到運營商 ID 資料庫類別中。公共方法getSimCarrierId()
和getSimCarrierIdName()
從運營商 ID 資料庫中獲取最新資訊。
將運營商 ID 資訊新增至資料庫
若要將運營商 ID 新增或更新至資料庫,請使用運營商識別資訊表提交請求。
您的請求將被審核,如果獲得批准,更改將被推送到位於carrier_list.pb
的 AOSP 程式碼庫。然後,您可以複製更新的清單並將其合併到您的自訂版本中。
將運營商 ID 與 CarrierConfig 集成
從 Android 10 開始,運營商配置支援使用運營商 ID 作為鍵從CarrierService
獲取運營商特定的配置。
將電信商ID與CarrierConfig
整合有以下優點:
- 將每個業者的所有 MCC/MNC 對合併到一個位置,刪除重複或不一致的資料。
- 為每個運營商建立規範標識符並消除歧義。
- 允許使用單獨的 ID 來識別行動虛擬網路營運商 (MVNO),而不是將其配置為行動網路營運商 (MNO) 的一部分。
將配置資料遷移到運營商 ID
若要將設定資料從 MCC/MNC 對遷移到運營商 ID,請執行下列步驟:
將來自單一運營商的
carrier_config_mccmnc.xml
檔案分組在一起。使用carrier_list.textpb
作為參考,將 MCC、MNC 和 MVNO 資訊對應到特定營運商。將配置合併到一個檔案中。
(可選)從 MNO 繼承資料。 MVNO 繼承舊版
carrier_config_mccmnc.xml
檔案中 MNO 的設定。由於運營商 ID 允許包括 MVNO 在內的所有運營商擁有專用配置文件,因此建議在遷移過程中包含 MNO 資料。如果 MVNO 運營商 ID 的配置不存在,請使用
getCarrierIdFromSimMccMnc
從其 MNO 運營商 ID 取得配置。將新檔案重新命名為
carrier_config_carrierid_ carrierid _ carriername .xml
,其中carrierid必須對應於canonical_id
, carriername應對應於carrier_list.textpb
中的carrier_name