Идентификация перевозчика

Устройства под управлением Android 9 могут распознавать информацию об операторе подписки, чтобы предоставить идентификатор и имя оператора. Android поддерживает базу данных идентификаторов операторов связи с правилами сопоставления для каждого оператора связи и его уникальным идентификатором оператора связи. AOSP включает содержимое базы данных идентификаторов операторов связи в файл carrier_list.textpb . Единая база данных сводит к минимуму дублирование логики в приложениях, которым необходимо идентифицировать операторов связи, и ограничивает раскрытие атрибутов, идентифицирующих оператора связи.

Чтобы улучшить покрытие и точность идентификации оператора связи, Android поддерживает внеполосное обновление таблицы идентификаторов оператора связи. Каждое обновление имеет номер версии и публикуется в AOSP.

Выполнение

Пользователи, желающие внедрить обновления по дополнительному каналу, могут загрузить двоичный файл carrier_list.pb с сайта AOSP. Чтобы просмотреть читаемый формат таблицы, см. carrier_list.textpb .

Поместите таблицу идентификаторов операторов связи в раздел /data/misc/carrierid/ data устройства. Если таблица идентификаторов операторов новее существующей версии, устройство сохраняет таблицу в классе базы данных идентификаторов операторов связи . Самая последняя информация из базы данных идентификаторов операторов связи извлекается открытыми методами getSimCarrierId() и getSimCarrierIdName() .

Добавление информации об идентификаторе оператора связи в базу данных

Чтобы добавить или обновить идентификатор оператора связи в базе данных, отправьте запрос, используя форму идентификационной информации оператора связи .

Ваш запрос рассматривается, и в случае одобрения изменение переносится в базу кода AOSP по адресу carrier_list.pb . Затем вы можете скопировать обновленный список и включить его в свою индивидуальную сборку.

Интеграция идентификаторов операторов связи с CarrierConfig

Начиная с Android 10, конфигурация оператора связи поддерживает использование идентификаторов оператора связи в качестве ключей для получения конфигураций конкретного оператора связи из CarrierService .

Интеграция идентификаторов операторов связи с CarrierConfig имеет следующие преимущества:

  • Объединяет все пары MCC/MNC для каждого оператора связи в одном месте, удаляя дубликаты или противоречивые данные.
  • Создает канонический идентификатор для каждого оператора связи и устраняет неоднозначность.
  • Позволяет операторам мобильных виртуальных сетей (MVNO) идентифицироваться по индивидуальным идентификаторам вместо настройки в рамках оператора мобильной сети (MNO).

Перенос данных конфигурации в идентификаторы операторов связи

Чтобы перенести данные конфигурации из пар MCC/MNC в идентификаторы операторов связи, выполните следующие действия:

  1. Сгруппируйте файлы carrier_config_mccmnc.xml от одного оператора вместе. Используйте carrier_list.textpb в качестве ссылки для сопоставления информации MCC, MNC и MVNO с конкретным оператором связи.

  2. Объедините конфигурации в один файл.

  3. (Необязательно) Наследовать данные от MNO. MVNO наследуют конфигурации от MNO в устаревшем файле carrier_config_mccmnc.xml . Поскольку идентификаторы операторов связи позволяют всем операторам связи, включая MVNO, иметь специальный файл конфигурации, рекомендуется включать данные MNO во время миграции.

  4. Если конфигурация для идентификатора оператора MVNO не существует, извлеките конфигурацию из идентификатора оператора MNO с помощью getCarrierIdFromSimMccMnc .

  5. Переименуйте новый файл в carrier_config_carrierid_ carrierid _ carriername .xml , где carrierid должен соответствовать canonical_id , а carriername должно соответствовать carrier_name в carrier_list.textpb .