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

Устройства под управлением Android 9 могут распознавать информацию о платёжеспособном операторе, предоставляя идентификатор и название оператора. Android поддерживает базу данных идентификаторов операторов с правилами сопоставления для каждого оператора и его уникального идентификатора. Проект Android Open Source Project (AOSP) включает содержимое базы данных идентификаторов операторов в файл carrier_list.textp b . Единая база данных минимизирует дублирование логики в приложениях, которым необходимо идентифицировать операторов, и ограничивает доступ к атрибутам, идентифицирующим операторов.

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

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

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