Устройства под управлением 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 в идентификаторы операторов, выполните следующие действия:
Объедините файлы
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