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

Устройства под управлением 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. (Необязательно) Наследовать данные от операторов мобильной связи. MVNO наследуют конфигурации от MNO в устаревшем carrier_config_mccmnc.xml . Поскольку идентификаторы операторов связи позволяют всем операторам связи, включая MVNO, иметь специальный файл конфигурации, рекомендуется включать данные оператора мобильной связи во время миграции.

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

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