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

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

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

Выполнение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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