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 つの携帯通信会社の
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
に対応する必要があります。