Устройства с Android 11 или более поздней версии могут поддерживать несколько сетей PLMN. В Android 11 есть методы в API идентификации соты, которые позволяют получить информацию о поддерживаемых PLMN соты, чтобы различать поставщиков услуг сотовой связи и операторов сети.
Поддержка нескольких PLMN обеспечивает гибкость операторам мобильной сети, позволяя им транслировать несколько идентификаторов. Это необходимо в первую очередь для поддержки соглашений о совместном использовании, в которых общее оборудование или вышки используются несколькими операторами мобильной связи. В сценарии с несколькими PLMN, когда устройство регистрируется через определенную вышку, оно выбирает PLMN для этой регистрации, что привязывает профиль устройства к этой PLMN для всех последующих подключений. Метод getRegisteredPlmn возвращает зарегистрированную сеть PLMN для устройства.
Реализация
Чтобы обеспечить поддержку нескольких PLMN на устройствах с Android 11 или более поздней версии, реализуйте функции в следующих расположениях в IRadio.
IRadio.hal и IRadioResponse.hal
В HAL Radio 1.5 для поддержки нескольких PLMN информация о сети, в которой зарегистрировано устройство, передается иначе, чем в предыдущих версиях. Во-первых, зарегистрированная PLMN (RPLMN) указывается отдельно, поскольку в ячейках с несколькими PLMN RPLMN может не быть основным идентификатором PLMN. В структурах CellIdentity ячейка содержит основной идентификатор PLMN и список дополнительных идентификаторов PLMN. RPLMN должен быть основным идентификатором PLMN или одним из дополнительных идентификаторов PLMN, указанных в структуре CellIdentity.
Изменения в HAL Radio 1.5 затронули следующие два метода HAL в IRadio.hal (и соответствующие им методы ответа в IRadioResponse.hal):
getDataRegState_1_5иgetDataRegStateResult_1_5(RegStateResult result)getVoiceRegState_1_5иgetVoiceRegStateResult_1_5(RegStateresult result)
types.hal
Реализуйте следующие элементы в types.hal:
ClosedSubscriberGroupInfo– необязательный параметр, который можно использовать с каждым экземпляромCellIdentity. Эта структура используется для предоставления информации о закрытой группе подписчиков, к которой относится ячейка, если такая группа существует. Обычно это используется для идентификации малых сот, например персональных устройств LTE. Его также можно использовать в развертываниях, таких как CBRS LTE.CellIdentityLte– поддерживает список дополнительных идентификаторов PLMN.CellIdentityWcdma– поддерживает список дополнительных идентификаторов PLMN.CellIdentityTdscdma: поддерживает список дополнительных идентификаторов PLMN.RegStateResult: включает обновленную структуруCellIdentityи поле для указания RPLMN.
Проверка
Чтобы проверить реализацию, запустите следующий тест CTS:
CellInfoTest
при регистрации в сети радиодоступа нескольких операторов (MORAN) или основной сети нескольких операторов (MOCN).