携帯通信会社 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 をデータベースに追加または更新するには、携帯通信会社 ID 情報フォームを使用してリクエストを送信します。

リクエストが審査され、承認されると、変更が AOSP コードベース(carrier_list.pb)にプッシュされます。その後、更新されたリストをコピーして、カスタマイズしたビルドに組み込むことができます。

携帯通信会社 ID を CarrierConfig と統合する

Android 10 以降では、携帯通信会社設定で、携帯通信会社 ID をキーとして使用して CarrierService から携帯通信会社固有の設定を取得できます。

携帯通信会社 ID を CarrierConfig と統合するメリットは次のとおりです。

  • 携帯通信会社ごとにすべての MCC / MNC ペアを 1 つの場所に統合し、重複するデータまたは矛盾するデータを削除できます。
  • 携帯通信会社ごとに正規識別子を作成し、曖昧さをなくします。
  • モバイル仮想ネットワーク事業者(MVNO)は、モバイル ネットワーク事業者(MNO)の一部として設定を持つのではなく、個別の ID で識別できます。

設定データを携帯通信会社 ID に移行する

設定データを MCC / MNC ペアから携帯通信会社 ID に移行する手順は次のとおりです。

  1. 1 つの携帯通信会社の carrier_config_mccmnc.xml ファイルをグループ化します。 carrier_list.textpb を参考にして、MCC、MNC、MVNO の情報を特定の携帯通信会社にマッピングします。

  2. 設定を 1 つのファイルに統合します。

  3. (省略可)MNO のデータを継承します。MVNO は、以前の carrier_config_mccmnc.xml ファイルにある MNO の設定を継承します。携帯通信会社 ID を使用すると MVNO を含むすべての携帯通信会社が専用の設定ファイルを持つことができるため、移行時に MNO データを含めることをおすすめします。

  4. MVNO 携帯通信会社 ID の設定が存在しない場合は、getCarrierIdFromSimMccMnc を使用して MNO 携帯通信会社 ID の設定を取得します。

  5. 新しいファイルの名前を carrier_config_carrierid_carrierid_carriername.xml に変更します。ここで carrieridcanonical_id に対応しなければならず、carriernamecarrier_list.textpbcarrier_name に対応する必要があります。