運行 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