2025 年 3 月 27 日より、AOSP のビルドとコントリビューションには aosp-main
ではなく android-latest-release
を使用することをおすすめします。詳細については、AOSP の変更をご覧ください。
携帯通信会社 ID
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
Android 9 を搭載しているデバイスは、加入している携帯通信会社の情報を認識して、ID と携帯通信会社名を提供できます。Android は、各携帯通信会社と一意の携帯通信会社 ID のマッチング ルールを持つ、携帯通信会社 ID データベースを保持しています。AOSP では、携帯通信会社 ID データベースの内容はファイル carrier_list.textpb
に含まれています。統合データベースは、携帯通信会社を識別する必要があるアプリのロジックの重複を最小限に抑えるとともに、携帯通信会社を識別する属性の露出を抑えます。
携帯通信会社識別のカバレッジと精度を高めるために、Android は帯域外のアップデートと携帯通信会社 ID テーブルのアップデートをサポートしています。各アップデートにはバージョン番号が付けられ、AOSP に公開されます。
実装
帯域外のアップデートを実装するユーザーは、AOSP から carrier_list.pb
バイナリをダウンロードできます。テーブルを読み取り可能な形式で表示するには、carrier_list.textpb
をご覧ください。
携帯通信会社 ID テーブルをデバイスの /data/misc/carrierid/
データ パーティションに配置します。携帯通信会社 ID テーブルが既存のバージョンより新しい場合、デバイスはテーブルを携帯通信会社 ID データベース クラスに保持します。携帯通信会社 ID データベースの最新情報は、パブリック メソッド getSimCarrierId()
と getSimCarrierIdName()
によって取得されます。
携帯通信会社 ID をデータベースに追加するか更新するには、携帯通信会社 ID 情報フォームを使用してリクエストを送信します。
リクエストが審査され、承認されると、変更が AOSP コードベース(carrier_list.pb
)にプッシュされます。その後、更新されたリストをコピーして、カスタマイズしたビルドに組み込むことができます。
携帯通信会社 ID を CarrierConfig と統合する
Android 10 以降では、携帯通信会社構成で、携帯通信会社 ID をキーとして使用し CarrierService
から携帯通信会社固有の構成を取得できます。
携帯通信会社 ID を CarrierConfig
と統合するメリットは次のとおりです。
- 携帯通信会社ごとにすべての MCC / MNC ペアを 1 つの場所に統合し、重複または矛盾するデータを削除できます。
- 携帯通信会社ごとに正規識別子を作成し、曖昧さをなくします。
- モバイル仮想ネットワーク事業者(MVNO)は、モバイル ネットワーク事業者(MNO)の一部として構成を持つのではなく、個別の ID で識別できます。
構成データを携帯通信会社 ID に移行する
構成データを MCC / MNC ペアから携帯通信会社 ID に移行する手順は次のとおりです。
1 つの携帯通信会社の carrier_config_mccmnc.xml
ファイルをグループ化します。
carrier_list.textpb
を参考にして、MCC、MNC、MVNO の情報を特定の携帯通信会社にマッピングします。
構成を 1 つのファイルに統合します。
(省略可)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
に対応する必要があります。
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2025-03-26 UTC。
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["必要な情報がない","missingTheInformationINeed","thumb-down"],["複雑すぎる / 手順が多すぎる","tooComplicatedTooManySteps","thumb-down"],["最新ではない","outOfDate","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["サンプル / コードに問題がある","samplesCodeIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2025-03-26 UTC。"],[],[],null,["# Carrier identification\n\nDevices running Android 9 can recognize subscription\ncarrier information to\nprovide an ID and a carrier name. Android maintains a carrier ID database, with\nmatching rules for each carrier and its unique carrier ID. AOSP includes the\ncontent of the carrier ID database, in the file\n[`carrier_list.textpb`](https://android.googlesource.com/platform/packages/providers/TelephonyProvider/+/android16-release/assets/latest_carrier_id/carrier_list.textpb).\nThe unified database minimizes duplicate logic in apps that need to identify\ncarriers and limits the exposure of carrier-identifying attributes.\n\nTo improve the coverage and accuracy of carrier identification, Android supports\nout-of-band and carrier ID table updates. Each update comes with a version\nnumber and is published to AOSP.\n\nImplementation\n--------------\n\nUsers who want to implement out-of-band updates can download the\n[`carrier_list.pb`](https://android.googlesource.com/platform/packages/providers/TelephonyProvider/+/android16-release/assets/latest_carrier_id/carrier_list.pb)\nbinary from AOSP. To view the readable format of the table, see\n[`carrier_list.textpb`](https://android.googlesource.com/platform/packages/providers/TelephonyProvider/+/android16-release/assets/latest_carrier_id/carrier_list.textpb).\n\nPlace the carrier ID table in the `/data/misc/carrierid/` data partition of the\ndevice. If the carrier ID table is newer than the existing version, the device\npersists the table to the\n[carrier ID database class](https://developer.android.com/reference/android/provider/Telephony.CarrierId).\nThe most recent information from the carrier ID database is picked up by the\npublic methods\n[`getSimCarrierId()`](https://developer.android.com/reference/android/telephony/TelephonyManager#getSimCarrierId())\nand\n[`getSimCarrierIdName()`](https://developer.android.com/reference/android/telephony/TelephonyManager#getSimCarrierIdName()).\n\nAdd carrier ID information to the database\n------------------------------------------\n\nTo add or update a carrier ID to the database, submit a request using the\n[Carrier identification information form](https://docs.google.com/forms/d/1KjwTaExKRjkE9tbR9yavBrGzwvuz1dNku2Ae_7GrdUQ/viewform?edit_requested=true).\n\nYour request is reviewed and if approved, the change is pushed to the AOSP code\nbase at\n[`carrier_list.pb`](https://android.googlesource.com/platform/packages/providers/TelephonyProvider/+/android16-release/assets/latest_carrier_id/carrier_list.pb).\nYou can then copy the updated list and incorporate it into your customized\nbuild.\n\nIntegrate carrier IDs with CarrierConfig\n----------------------------------------\n\nStarting from Android 10,\n[carrier configuration](/docs/core/connect/carrier) supports\nusing carrier IDs as keys to fetch carrier-specific configurations from\n[`CarrierService`](https://developer.android.com/reference/android/service/carrier/CarrierService).\n\nIntegrating carrier IDs with `CarrierConfig` has the following advantages:\n\n- Consolidates all MCC/MNC pairs for each carrier into a single location removing duplicate or inconsistent data.\n- Creates a canonical identifier for each carrier and removes ambiguity.\n- Allows mobile virtual network operators (MVNOs) to be identified with individual IDs instead of having configurations as part of a mobile network operator (MNO).\n\n### Migrate configuration data to carrier IDs\n\nTo migrate configuration data from MCC/MNC pairs to carrier IDs, follow\nthese steps:\n\n1. Group the `carrier_config_mccmnc.xml` files from a single carrier together.\n Use\n [`carrier_list.textpb`](https://android.googlesource.com/platform/packages/providers/TelephonyProvider/+/android16-release/assets/latest_carrier_id/carrier_list.textpb)\n as a reference to map the MCC, MNC, and MVNO information to a particular\n carrier.\n\n2. Merge the configurations into a single file.\n\n3. (Optional) Inherit data from MNOs. MVNOs inherit configurations from\n MNOs in the legacy `carrier_config_mccmnc.xml` file. Because carrier IDs\n allow all carriers including MVNOs to have a dedicated config file, it's\n recommended to include MNO data during migration.\n\n4. If the configuration for an MVNO carrier ID doesn't exist, fetch the\n configuration from its MNO carrier ID using\n [`getCarrierIdFromSimMccMnc`](https://developer.android.com/reference/android/telephony/TelephonyManager#getCarrierIdFromSimMccMnc()).\n\n5. Rename the new file as\n `carrier_config_carrierid_`\u003cvar translate=\"no\"\u003ecarrierid\u003c/var\u003e`_`\u003cvar translate=\"no\"\u003ecarriername\u003c/var\u003e`.xml`\n where \u003cvar translate=\"no\"\u003ecarrierid\u003c/var\u003e must correspond to a `canonical_id` and\n \u003cvar translate=\"no\"\u003ecarriername\u003c/var\u003e should correspond to a `carrier_name` in\n [`carrier_list.textpb`](https://android.googlesource.com/platform/packages/providers/TelephonyProvider/+/android16-release/assets/latest_carrier_id/carrier_list.textpb)\n\n| **Note:** If a `carrier_config_mccmnc` file doesn't have a matching carrier ID, submit a request to add a carrier ID by following the steps in [Adding carrier ID information to the database](#adding_carrier_id_information_to_the_database)."]]