Устройства под управлением Android 9 могут распознавать информацию о подписке оператора, чтобы предоставить идентификатор и имя оператора. Android поддерживает базу данных идентификаторов операторов с правилами сопоставления для каждого оператора и его уникального идентификатора оператора. AOSP включает содержимое базы данных идентификаторов операторов в файл carrier_list.textpb
. Единая база данных минимизирует дублирование логики в приложениях, которым необходимо идентифицировать операторов, и ограничивает раскрытие атрибутов, идентифицирующих оператора.
Для улучшения покрытия и точности идентификации оператора Android поддерживает обновления внеполосных и идентификаторов операторов. Каждое обновление поставляется с номером версии и публикуется в AOSP.
Выполнение
Пользователи, желающие реализовать внеполосные обновления, могут загрузить двоичный файл carrier_list.pb
из AOSP. Чтобы просмотреть читаемый формат таблицы, см. carrier_list.textpb
.
Поместите таблицу идентификаторов операторов в раздел /data/misc/carrierid/
устройства. Если таблица идентификаторов операторов новее существующей версии, устройство сохраняет таблицу в базе данных идентификаторов операторов class . Самая последняя информация из базы данных идентификаторов операторов извлекается публичными методами getSimCarrierId()
и getSimCarrierIdName()
.
Добавить информацию об идентификаторе перевозчика в базу данных
Чтобы добавить или обновить идентификатор перевозчика в базе данных, отправьте запрос, используя форму «Информация об идентификации перевозчика» .
Ваш запрос рассматривается, и если он одобрен, изменение отправляется в базу кода AOSP по адресу carrier_list.pb
. Затем вы можете скопировать обновленный список и включить его в свою настроенную сборку.
Интеграция идентификаторов операторов с CarrierConfig
Начиная с Android 10, конфигурация оператора поддерживает использование идентификаторов оператора в качестве ключей для получения конфигураций оператора из CarrierService
.
Интеграция идентификаторов операторов с CarrierConfig
имеет следующие преимущества:
- Объединяет все пары MCC/MNC для каждого оператора в одном месте, удаляя дублирующиеся или несогласованные данные.
- Создает канонический идентификатор для каждого оператора и устраняет неоднозначность.
- Позволяет идентифицировать операторов мобильных виртуальных сетей (MVNO) с помощью индивидуальных идентификаторов вместо конфигураций в рамках оператора мобильной сети (MNO).
Перенос данных конфигурации в идентификаторы операторов
Чтобы перенести данные конфигурации из пар MCC/MNC в идентификаторы операторов, выполните следующие действия:
Сгруппируйте файлы
carrier_config_mccmnc.xml
от одного оператора. Используйтеcarrier_list.textpb
в качестве ссылки для сопоставления информации MCC, MNC и MVNO с конкретным оператором.Объедините конфигурации в один файл.
(Необязательно) Наследовать данные от MNO. MVNO наследуют конфигурации от MNO в устаревшем файле
carrier_config_mccmnc.xml
. Поскольку идентификаторы операторов позволяют всем операторам, включая MVNO, иметь выделенный файл конфигурации, рекомендуется включать данные MNO во время миграции.Если конфигурация для идентификатора оператора MVNO не существует, извлеките конфигурацию из идентификатора оператора MNO с помощью
getCarrierIdFromSimMccMnc
.Переименуйте новый файл в
carrier_config_carrierid_ carrierid _ carriername .xml
, где carrierid должен соответствоватьcanonical_id
, а carriername должен соответствоватьcarrier_name
вcarrier_list.textpb