運行 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/
數據分區中。如果運營商 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_name
中的carrier_list.textpb