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

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

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

Выполнение

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

Поместите таблицу идентификаторов операторов в раздел /data/misc/carrierid/ устройства. Если таблица идентификаторов операторов новее текущей версии, устройство сохраняет её в базе данных идентификаторов операторов класса . Актуальная информация из базы данных идентификаторов операторов извлекается публичными методами 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