Начиная с Android 12, Android включает поддержку конфигурации разрешений на услуги TS.43 , спецификации GSMA, которая определяет этап проверки прав для активации служб, включая передачу голоса по Wi-Fi (VoWiFi), передачу голоса по LTE (VoLTE). , SMS через IP (SMSoIP), активация службы на устройстве (ODSA) сопутствующих устройств eSIM (связанных с запрашивающим устройством) и информация о тарифном плане.
Для поддержки этой спецификации Android предоставляет функцию предоставления прав на услуги IMS, которая позволяет поставщику услуг информировать мобильные устройства о состоянии сетевых служб IP Multimedia Subsystem (IMS). Эта функция предоставления прав позволяет устройству запрашивать у сервера разрешений оператора связи, как определено спецификацией GSMA TS.43, статус разрешений IMS с использованием аутентификации EAP-AKA, не требуя от пользователей ввода каких-либо учетных данных вручную.
Операторы связи с серверами разрешений IMS могут использовать функцию предоставления прав на услуги IMS для предоставления услуг. Внедрение этой функции дает следующие преимущества:
- Снижает затраты на тестирование и сертификацию для операторов связи, поскольку эту функцию разрешений можно использовать для нескольких продуктов и OEM-производителей.
- Снижает затраты производителей устройств на разработку благодаря стандартному приложению Android.
- Позволяет производителям устройств и операторам связи предоставлять код для этой функции, поскольку эта функция имеет открытый исходный код.
- Обеспечивает управление адресами экстренных служб для операторов связи в Северной Америке.
Архитектура
На следующем рисунке описаны архитектура и поведение функции предоставления прав на услуги IMS.
Рисунок 1. Архитектура функции предоставления прав TS.43
Как показано на рисунке 1, архитектура функции предоставления прав на услуги IMS включает следующие компоненты:
-
service_entitlement
Статическая библиотека API службы TS.43 : эта библиотека реализует спецификацию TS.43, взаимодействует с сервером разрешений оператора связи и предоставляет API-интерфейсы для приложений для каждого варианта использования TS.43. Клиентское приложение
ImsServiceEntitlement
: это приложение использует API службы TS.43. В приложении реализованы элементы пользовательского интерфейса, включая веб-представления, для отображения портала услуг оператора связи, позволяющего пользователям активировать услуги, и взаимодействует с другими компонентами Android для комплексного управления пользовательским опытом.Дополнительные сведения о том, как настроить Android для работы с сервером разрешений на базе TS.43 оператора связи, см. в приложении ImsServiceEntitlement .
Пронумерованные линии на рисунке 1 показывают, как компоненты функции предоставления прав на услуги IMS взаимодействуют друг с другом. Ниже описывается каждый из отмеченных шагов:
(1) Клиентское приложение вызывает API службы TS.43, чтобы инициировать запрос на предоставление права на службу.
(2) API службы TS.43 отправляет HTTP-запрос на сервер разрешений оператора связи, чтобы инициировать запрос EAP-AKA.
(3) API-интерфейс службы TS.43 вызывает API-интерфейсы телефонии (например, getIccAuthentication
) для выполнения запроса-ответа EAP-AKA.
(4) Служба TS.43 получает данные о разрешении на услугу или конфигурации от сервера разрешений оператора связи после проверки ответа EAP-AKA.
(5) Служба TS.43 возвращает данные о разрешении услуги или конфигурации клиентскому приложению.
(6) Клиентское приложение обрабатывает данные и, при необходимости, предоставляет пользователю портал услуг оператора связи для завершения активации услуги.
Интеграция
В этом разделе описан процесс интеграции библиотеки service_entitlement
и приложения ImsServiceEntitlement
.
Поскольку зависимости API от Android 12 нет, библиотеку service_entitlement
и приложение ImsServiceEntitlement
можно перенести на более старые платформы Android.
библиотека service_entitlement
Поскольку библиотека service_entitlement
статически связана с ImsServiceEntitlement app
, никаких дополнительных действий для интеграции библиотеки в приложение ImsServiceEntitlement
не требуется.
Библиотеку service_entitlement
можно интегрировать с вашими собственными приложениями для сценариев использования TS.43, таких как тарифный план и ODSA. Библиотеку также можно интегрировать в приложение для случаев использования прав, отличных от TS.43, на основе протокола EAP-AKA.
Ниже описаны API, которые можно использовать в таких случаях:
- Приложение TS.43, использующее протокол HTTP TS.43, реализованный в библиотеке: используйте API в классе
ServiceEntitlement
. - Приложение, не поддерживающее TS.43, использующее протокол EAP-AKA, реализованный в библиотеке: используйте API-интерфейсы, представленные в классе
EapAkaHelper
Приложение ImsServiceEntitlement
По умолчанию Android включает приложение ImsServiceEntitlement
установленное в разделе продукта, как привилегированное приложение. Для настройки приложения используйте следующие ключи CarrierConfig:
Ключ | Ценить |
---|---|
KEY_ENTITLEMENT_SERVER_URL_STRING | URL-адрес сервера разрешений оператора связи. Префикс https:// должен быть включен. |
KEY_FCM_SENDER_ID_STRING | Идентификатор отправителя FCM оператора связи. Не устанавливайте это значение, если оператор связи не требует FCM. |
KEY_SHOW_VOWIFI_WEBVIEW_BOOL | Установите значение true , если оператору связи требуется пользовательский интерфейс веб-портала, чтобы пользователи могли подписаться на службу VoWiFi. Например, согласие с положениями и условиями или ввод экстренного адреса.Обычно этого требуют операторы связи в Северной Америке. |
KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING | Установите значение com.android.imsserviceentitlement/.WfcActivationActivity , если KEY_SHOW_VOWIFI_WEBVIEW_BOOL имеет true . |
KEY_IMS_PROVISIONING_BOOL | Установите значение true если оператор связи требует предоставления сети услуг IMS (VoLTE/VoWiFi/SMSoIP) в фоновом режиме.Этого требуют некоторые европейские перевозчики. |
KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL | Установите значение true , если KEY_IMS_PROVISIONING_BOOL имеет true . |
HTTP-трафик к серверу разрешений и веб-порталу оператора связи проходит через сеть по умолчанию, например, мобильные данные по умолчанию или Wi-Fi.
Партнеры GMS: Следующие операторы связи поддерживаются приложением полномочий TS.43 в Android 12 в соответствии со спецификацией TS.43 v5.0:
- США: CSpire, сотовая связь США, Cellcom.
- Франция: оранжевый
Дополнительный системный пользовательский интерфейс для обеспечения IMS
В этом разделе описывается, как OEM-производители могут поддерживать дополнительные элементы пользовательского интерфейса системы, связанные с предоставлением услуг IMS (например, при отображении уведомления о предоставлении VoWiFi).
Приложение ImsServiceEntitlement
устанавливает состояние подготовки VoWiFi на платформе с помощью системного API ProvisioningManager.setProvisioningIntValue(KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE, value)
. Этот API также используется для VoLTE (с KEY_VOLTE_PROVISIONING_STATUS
) и SMSoIP (с KEY_SMS_OVER_IP_ENABLED
).
Затем системный пользовательский интерфейс может прочитать состояние подготовки с помощью getProvisioningIntValue
или зарегистрировав обратный вызов для отслеживания изменения состояния подготовки с помощью registerProvisioningChangedCallback
.
Переопределить конфигурации для тестирования
Используйте следующие процедуры, чтобы временно изменить поведение приложения ImsServiceEntitlement
в целях тестирования. Подробную информацию о том, как переопределить конфигурации оператора связи, см. в разделе «Переопределение конфигураций оператора связи» .
Пропустить процесс регистрации VoWiFi
Чтобы пропустить процесс регистрации VoWiFi и разрешить непосредственное включение VoWiFi, переопределите конфигурацию оператора связи KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING
и установите ее значение в пустую строку.
Пропустить подготовку IMS
Чтобы пропустить подготовку IMS, сделать службы IMS доступными и разрешить пользователям включать такие службы без подготовки сети, переопределите конфигурацию оператора связи KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL
и установите для нее значение false
.
Изменить URL-адрес сервера разрешений
Чтобы изменить URL-адрес сервера разрешений, переопределите конфигурацию оператора связи KEY_ENTITLEMENT_SERVER_URL_STRING
и установите для него значение ожидаемой строки URL-адреса. Вы должны включить префикс https://
.
Переопределить конфигурации оператора связи
Начиная с Android 11, команды переопределения конфигурации оператора связи встроены и доступны с правами root.
Следующая команда представляет собой пример того, как переопределить ключ конфигурации оператора связи carrier_volte_provisioning_required_bool
и установить для него значение false
. Вы можете запустить команду несколько раз, чтобы переопределить несколько конфигураций.
adb root
adb shell cmd phone cc set-value -p carrier_volte_provisioning_required_bool false
Чтобы удалить все переопределения, используйте следующую команду:
adb shell cmd phone cc clear-values
Чтобы получить дополнительную информацию, выполните следующую команду:
adb shell cmd phone cc