Для устройств под управлением Android 12 или более поздней версии Android обеспечивает поддержку сегментации сети 5G, использования сетевой виртуализации для разделения отдельных сетевых подключений на несколько отдельных виртуальных подключений, которые предоставляют разное количество ресурсов для разных типов трафика. Сеть 5G позволяет операторам сетей выделять часть сети для предоставления определенных функций определенному сегменту клиентов. Android 12 представляет следующие возможности сегментации корпоративной сети 5G, которые операторы сетей могут предоставлять своим корпоративным клиентам:
Разделение корпоративных устройств на полностью управляемые устройства
Для предприятий, которые предоставляют своим сотрудникам полностью управляемые корпоративные устройства, поставщики сетевых услуг могут предоставить им один или несколько активных корпоративных сетевых срезов, куда будет направляться трафик на корпоративных устройствах. Начиная с Android 12, Android позволяет операторам предоставлять корпоративные срезы через правила URSP, вместо того, чтобы настраивать срезы через APN.
Нарезка корпоративных бизнес-приложений для устройств с рабочими профилями
Для предприятий, использующих решение рабочего профиля , Android 12 позволяет устройствам направлять трафик из всех приложений в рабочем профиле в корпоративный сетевой срез. Предприятия могут включить эту возможность через Device Policy Controller (DPC) .
Решение рабочего профиля обеспечивает автоматический уровень аутентификации и контроля доступа, который требуется предприятиям для обеспечения того, чтобы только трафик из корпоративных приложений в рабочем профиле направлялся в корпоративный сетевой слайс. Приложения в рабочем профиле не нужно изменять для явного запроса корпоративного сетевого слайса.
Как работает нарезка сети 5G в AOSP
В Android 12 реализована поддержка сегментации сетей 5G за счет дополнений к кодовой базе телефонии в AOSP и модулю Tethering для включения существующих API-интерфейсов подключения, необходимых для сегментации сетей.
Платформа телефонии Android предоставляет HAL и API телефонии для поддержки нарезки на основе сетевых запросов, поданных основным сетевым кодом, и возможностей нарезки 5G в модеме. На рисунке 1 описаны компоненты функции нарезки сети 5G.
Рисунок 1. Архитектура сегментации сети 5G в AOSP.
Платформа телефонии и связи поддерживает:
- Преобразование сетевых запросов для категорий слайсов в дескрипторы трафика , которые затем передаются модему для сопоставления трафика URSP и выбора маршрута
- Возврат к сети по умолчанию, если сетевой сегмент предприятия недоступен
- Направление трафика из всех приложений рабочего профиля на соответствующее соединение
Поддержка корпоративного сегментирования
- Обнаружение наличия рабочего профиля на устройстве
- Проверка разрешений или направлений маршрутизации, предоставленных из DPC, используемых ИТ-администратором предприятия
Основная сетевая служба включает в себя следующие изменения модуля модема в Android 12:
- Добавляет большинство общедоступных или системных классов API
android.net.*
в модуль Tethering Расширяет границы модуля Tethering, включая:
-
f/b/core/java/android/net/…
-
f/b/services/net/…
-
f/b/services/core/java/com/android/server/connectivity/…
-
f/b/services/core/java/com/android/server/ConnectivityService.java
-
f/b/services/core/java/com/android/server/TestNetworkService.java
-
Перемещает код VPN из модуля Tethering
Android 12 переносит код со следующими возможностями в модуль Tethering:
- Получение запросов от приложений на сетевые подключения
- Получение запросов от системы (например, «разместить эти приложения на корпоративном слайсе»; представлено в Android 12)
- Отправка запросов из системы в телефонный код, который пытается настроить сети или слайсы, проходя через HAL API и модем
- Информирование netd о том, как маршрутизировать трафик для каждого приложения (введено в Android 12)
- Информирование приложений о том, что происходит с их сетевым трафиком, с помощью API-интерфейсов
ConnectivityManager
таких какNetworkCallback
,getActiveNetwork
,getNetworkCapabilities
.
Выполнение
Для поддержки 5G-слайсинга на устройстве, устройство должно иметь модем, поддерживающий IRadio 1.6 HAL, который имеет API setupDataCall_1_6
. Этот API устанавливает соединение для передачи данных и включает следующие параметры для поддержки 5G-слайсинга:
-
trafficDescriptor
: определяет дескриптор трафика, отправляемого модему. -
sliceInfo
: указывает информацию для сетевого среза, который будет использоваться в случае передачи обслуживания EPDG на 5G. -
matchAllRuleAllowed
: Указывает, разрешено ли использовать правило URSP match-all по умолчанию. Телефония устанавливает это значение true для сетей по умолчанию, но не для слайсов. Правило match-all применяется к сетям по умолчанию. Когда приложение запрашивает определенный слайс, который недоступен, определенный слайс сообщается как недоступный. Для корпоративных приложений фреймворк телефонии может вернуться к сети по умолчанию, если корпоративная сеть недоступна.
Модемы также должны реализовывать API getSlicingConfig
, если только API getHalDeviceCapabilities
не сообщает о его неподдерживаемости.
Требования предприятия
Ниже описаны требования к предприятиям по использованию сегментации сети 5G на устройствах в корпоративной среде Android.
- Убедитесь, что полностью управляемые или настроенные с рабочим профилем устройства сотрудников поддерживают 5G SA с модемами, поддерживающими API
setupDataCall_1_6
. - Работайте с партнером-оператором по настройке сегмента и характеристикам производительности или SLA.
Включите функцию 5G-слайсинга на устройствах, настроенных с помощью рабочего профиля
Для устройств, настроенных с рабочими профилями, сетевое разделение 5G по умолчанию отключено в AOSP. Чтобы включить сетевое разделение, корпоративные ИТ-администраторы могут включать или выключать маршрутизацию трафика приложения рабочего профиля в корпоративный сетевой раздел для каждого сотрудника через EMM DPC, который использует метод setPreferentialNetworkServiceEnabled
в API DevicePolicyManager
(DPM) (введен в Android 12).
Поставщики EMM с индивидуальными DPC должны интегрировать API DevicePolicyManager
для поддержки корпоративных клиентов.
Правила УРСП
В этом разделе содержится информация для операторов по настройке правил URSP для различных категорий слайсов, включая корпоративный, CBS, трафик с низкой задержкой и высокой пропускной способностью. При настройке правил URSP для различных категорий слайсов операторы должны использовать следующие значения, специфичные для Android.
ИДЕНТИФИКАТОР | Ценить | Описание |
---|---|---|
Идентификатор ОС | 97a498e3-fc92-5c94-8986-0333d06e4e47 | OSId для Android — это UUID версии 5, сгенерированный с использованием пространства имен ISO OID и имени «Android». |
Операторы должны настроить правила URSP для каждого трафика среза с компонентом дескриптора трафика как "OS Id + OS App Id type". Например, срез "ENTERPRISE" должен иметь значение 0x97A498E3FC925C9489860333D06E4E470A454E5445525052495345
. Это значение является конкатенацией OSId, длины OSAppId ( 0x0A
) и OSAppId. Для получения дополнительной информации о типе компонента дескриптора трафика см. 3GPP TS 24.526 Table 5.2.1 .
В следующей таблице описаны значения OSAppId для различных категорий слайсов.
Категория среза | OSAppId | Описание |
---|---|---|
ПРЕДПРИЯТИЕ | 0x454E5445525052495345 | OSAppId — это представление строки «ENTERPRISE» в виде массива байтов. |
ПРЕДПРИЯТИЕ2 | 0x454E544552505249534532 | OSAppId — это представление строки «ENTERPRISE2» в виде массива байтов. |
ПРЕДПРИЯТИЕ3 | 0x454E544552505249534533 | OSAppId — это представление строки «ENTERPRISE3» в виде массива байтов. |
ПРЕДПРИЯТИЕ4 | 0x454E544552505249534534 | OSAppId — это представление строки «ENTERPRISE4» в виде массива байтов. |
ПРЕДПРИЯТИЕ5 | 0x454E544552505249534535 | OSAppId — это представление строки «ENTERPRISE5» в виде массива байтов. |
Си-Би-Эс | 0x434253 | OSAppId — это представление строки «CBS» в виде массива байтов. |
ПРИОРИТЕТ_ЗАДЕРЖКИ | 0x5052494f524954495a455f4c4154454e4359 | OSAppId — это представление строки «PRIORITIZE_LATENCY» в виде массива байтов. |
ПРИОРИТЕТ_BANDWIDTH | 0x5052494f524954495a455f42414e445749445448 | OSAppId — это представление строки «PRIORITIZE_BANDWIDTH» в виде массива байтов. |
Пример правил URSP
В следующих таблицах показаны примеры правил URSP для корпоративного трафика, CBS, трафика с низкой задержкой, высокой пропускной способностью и трафика по умолчанию.
Предприятие 1
Поддержка Enterprise 1 доступна в Android 12 и выше. Ниже приведен пример правила URSP для трафика ENTERPRISE1:
Правило URSP №1 (enterprise1) | |
---|---|
Приоритет | 1 (0x01) |
Дескриптор трафика №1 | |
Идентификатор ОС + Тип идентификатора приложения ОС | 0x97A498E3FC925C9489860333D06E4E470A454E5445525052495345 |
Дескриптор выбора маршрута №1 | |
Приоритет | 1 (0x01) |
Компонент №1: S-NSSAI | SST:XX SD:YYYYYY |
Компонент №2: DNN | предприятие |
Дескриптор выбора маршрута №2 | |
Приоритет | 2 (0x02) |
Компонент №1: DNN | предприятие |
Предприятие 2
Поддержка Enterprise 2 доступна в Android 13 и выше. Ниже приведен пример правила URSP для трафика ENTERPRISE2:
Правило URSP №2 (enterprise2) | |
---|---|
Приоритет | 2 (0x02) |
Дескриптор трафика №1 | |
Идентификатор ОС + Тип идентификатора приложения ОС | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534532 |
Дескриптор выбора маршрута №1 | |
Приоритет | 1 (0x01) |
Компонент №1: S-NSSAI | SST:XX SD:YYYYYY |
Компонент №2: DNN | предприятие2 |
Дескриптор выбора маршрута №2 | |
Приоритет | 2 (0x02) |
Компонент №1: DNN | предприятие2 |
Предприятие 3
Поддержка Enterprise 3 доступна в Android 13 и выше. Ниже приведен пример правила URSP для трафика ENTERPRISE3:
Правило URSP №3 (enterprise3) | |
---|---|
Приоритет | 3 (0x03) |
Дескриптор трафика №1 | |
Идентификатор ОС + Тип идентификатора приложения ОС | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534533 |
Дескриптор выбора маршрута №1 | |
Приоритет | 1 (0x01) |
Компонент №1: S-NSSAI | SST:XX SD:YYYYYY |
Компонент №2: DNN | предприятие3 |
Дескриптор выбора маршрута №2 | |
Приоритет | 2 (0x02) |
Компонент №1: DNN | предприятие3 |
Предприятие 4
Поддержка Enterprise 4 доступна в Android 13 и выше. Ниже приведен пример правила URSP для трафика ENTERPRISE4:
Правило URSP №4 (enterprise4) | |
---|---|
Приоритет | 4 (0x04) |
Дескриптор трафика №1 | |
Идентификатор ОС + Тип идентификатора приложения ОС | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534534 |
Дескриптор выбора маршрута №1 | |
Приоритет | 1 (0x01) |
Компонент №1: S-NSSAI | SST:XX SD:YYYYYY |
Компонент №2: DNN | предприятие4 |
Дескриптор выбора маршрута №2 | |
Приоритет | 2 (0x02) |
Компонент №1: DNN | предприятие4 |
Предприятие 5
Поддержка Enterprise 5 доступна в Android 13 и выше. Ниже приведен пример правила URSP для трафика ENTERPRISE5:
Правило URSP №5 (enterprise5) | |
---|---|
Приоритет | 5 (0x05) |
Дескриптор трафика №1 | |
Идентификатор ОС + Тип идентификатора приложения ОС | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534535 |
Дескриптор выбора маршрута №1 | |
Приоритет | 1 (0x01) |
Компонент №1: S-NSSAI | SST:XX SD:YYYYYY |
Компонент №2: DNN | предприятие5 |
Дескриптор выбора маршрута №2 | |
Приоритет | 2 (0x02) |
Компонент №1: DNN | предприятие5 |
Си-Би-Эс
Поддержка CBS доступна в Android 13 и выше. Ниже приведен пример правила URSP для трафика CBS:
Правило URSP № 6 (CBS) | |
---|---|
Приоритет | 6 (0x06) |
Дескриптор трафика №1 | |
Идентификатор ОС + Тип идентификатора приложения ОС | 0x97A498E3FC925C9489860333D06E4E4703434253 |
Дескриптор выбора маршрута №1 | |
Приоритет | 1 (0x01) |
Компонент №1: S-NSSAI | SST:XX SD:YYYYYY |
Компонент №2: DNN | cbs |
Дескриптор выбора маршрута №2 | |
Приоритет | 2 (0x02) |
Компонент №1: DNN | cbs |
Низкая задержка
Поддержка Low Latency доступна в Android 13 и выше. Ниже приведен пример правила URSP для трафика LOW_LATENCY:
Правило URSP №7 (низкая задержка) | |
---|---|
Приоритет | 7 (0x07) |
Дескриптор трафика №1 | |
Идентификатор ОС + Тип идентификатора приложения ОС | 0x97A498E3FC925C9489860333D06E4E47125052494f524954495a455f4c4154454e4359 |
Дескриптор выбора маршрута №1 | |
Приоритет | 1 (0x01) |
Компонент №1: S-NSSAI | SST:XX SD:YYYYYY |
Компонент №2: DNN | задержка |
Дескриптор выбора маршрута №2 | |
Приоритет | 2 (0x02) |
Компонент №1: DNN | задержка |
Высокая пропускная способность
Поддержка High Bandwidth доступна в Android 13 и выше. Ниже приведен пример правила URSP для трафика HIGH_BANDWIDTH:
Правило URSP №8 (высокая пропускная способность) | |
---|---|
Приоритет | 8 (0x08) |
Дескриптор трафика №1 | |
Идентификатор ОС + Тип идентификатора приложения ОС | 97A498E3FC925C9489860333D06E4E47145052494f524954495a455f42414e445749445448 |
Дескриптор выбора маршрута №1 | |
Приоритет | 1 (0x01) |
Компонент №1: S-NSSAI | SST:XX SD:YYYYYY |
Компонент №2: DNN | пропускная способность |
Дескриптор выбора маршрута №2 | |
Приоритет | 2 (0x02) |
Компонент №1: DNN | пропускная способность |
По умолчанию
Правило URSP №9 (по умолчанию) | |
---|---|
Приоритет | 9 (0x09) |
Дескриптор трафика №1 | |
матч-все | Н/Д |
Дескриптор выбора маршрута №1 | |
Приоритет | 1 (0x01) |
Компонент №1: S-NSSAI | SST:XX SD:YYYYYY |
Тестирование
Для проверки сегментации сети 5G используйте следующий ручной тест.
Чтобы настроить устройство для тестирования, выполните следующие действия:
Убедитесь, что политика URSP настроена с нестандартным правилом, соответствующим корпоративной категории, и что соответствующий дескриптор выбора маршрута сопоставляет корпоративную категорию с корпоративным слайсом; а также с правилом по умолчанию, направляющим трафик в интернет-слайс по умолчанию.
Убедитесь, что на устройстве настроен рабочий профиль.
Включите использование сетевого сегментирования через DPC
Чтобы протестировать поведение сегментации сети 5G, выполните следующие действия:
- Убедитесь, что сеанс PDU установлен с корпоративным слайсом (например, с использованием определенного IP-адреса) и что приложения в рабочем профиле используют этот сеанс PDU.
- Убедитесь, что установлен отдельный сеанс PDU с интернет-срезом по умолчанию и что приложения в личном профиле используют сеанс PDU.
5G нарезка дополнительных продаж
Функция сегментации 5G, доступная в Android 14-QPR1, позволяет операторам предлагать своим пользователям расширенные сетевые возможности (задержку и пропускную способность) посредством сегментации сети 5G.
Функция 5G-нарезки upsell использует ответ TS.43 от сервера полномочий оператора для управления потоком покупок. Операторы могут использовать ответ для указания URL-адреса для веб-представления о покупке оператора, отправки дополнительных данных в веб-представление и указания того, предоставлен ли срез и доступен ли он в сети оператора.
Операторы могут настраивать поведение функции сегментации 5G при дополнительных продажах с помощью конфигураций оператора, которые контролируют возможность отправки запросов на покупку, когда приложениям разрешено запрашивать премиум-возможности и как долго структура телефонии ждет ответов от пользователя или сети.
Функция сегментации 5G-сетей предоставляет интерфейс, называемый DataBoostWebServiceFlow
, для обеспечения связи между Android и веб-просмотром оператора.
На рисунке 2 показана схема процесса покупки дополнительных услуг 5G:
Рисунок 2. Разделение потока покупок дополнительных услуг 5G.
TS.43 процесс получения права
Когда пользователь делает запрос на расширенные сетевые возможности, фреймворк телефонии запрашивает конфигурацию права на обслуживание для запрошенной премиум-возможности. Если ответ TS.43 действителен, фреймворк телефонии использует поля из ответа HTTP для управления запросом на покупку.
Разделить поля покупки
Конфигурация прав TS.43 включает в себя следующие поля покупки слайсов:
- Статус права
Ключ:
EntitlementStatus
Тип:
int
Поддерживаемые значения:
0
(отключено),1
(включено),2
(несовместимо),3
(обеспечение),4
(включено)- Статус предоставления
Ключ:
ProvStatus
Тип:
int
Поддерживаемые значения:
0
(не предоставлено),1
(предоставлено),2
(недоступно),3
(в процессе)
Структура телефонии использует комбинацию статуса прав и статуса предоставления для определения текущего состояния покупки слайса. Результат может быть одним из следующих:
-
PURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_PURCHASED
-
PURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_IN_PROGRESS
-
PURCHASE_PREMIUM_CAPABILITY_RESULT_ENTITLEMENT_CHECK_FAILED
-
PURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_ERROR
Если статус предоставления равен 1
(включено), а статус предоставления равен 0
(не предоставлено), фреймворк телефонии отображает пользователю уведомление о продаже с предложением приобрести повышение через веб-представление оператора. В следующей таблице описывается поведение фреймворка телефонии для различных комбинаций значений статуса предоставления и предоставления.
Статус предоставления | |||||
---|---|---|---|---|---|
Не предусмотрено ( 0 ) | Предоставлено ( 1 | Недоступно ( 2 ) | В процессе ( 3 ) | ||
Статус права | Отключено ( 0 ) | Неуспешный | Неуспешный | Неуспешный | Неуспешный |
Включено ( 1 ) | Показать веб-просмотр | Уже куплено | Уже куплено | В ходе выполнения | |
Несовместимо ( 2 ) | Неуспешный | Неуспешный | Неуспешный | Неуспешный | |
Обеспечение ( 3 ) | Ошибка перевозчика | Ошибка перевозчика | В ходе выполнения | В ходе выполнения | |
Включено ( 4 ) | Ошибка перевозчика | Уже куплено | Уже куплено | Ошибка перевозчика |
Поля потока услуг
В ответе TS.43 указывается URL, данные пользователя и тип содержимого для настройки поведения веб-просмотра покупки оператора. Если тип содержимого не указан, URL загружается как запрос GET. Если данные пользователя существуют, они добавляются к URL в качестве параметра запроса (например, https://www.android.com?encodedValue=Base64EncodedUserData
); а если они не существуют, URL используется как есть (например, https://www.android.com
).
Если тип содержимого указан в формате JSON или XML, URL-адрес загружается как запрос POST, а пользовательские данные (декодированные, если они закодированы в Base 64) отправляются как данные для запроса POST.
- URL
Ключ:
ServiceFlow_URL
Тип:
String
Пример:
"https://www.android.com"
- Данные пользователя
Ключ:
ServiceFlow_UserData
Тип:
String
Пример:
"encodedValue=Base64EncodedUserData"
- Тип содержимого
Ключ:
ServiceFlow_ContentsType
Тип:
String
Поддерживаемые значения:
0
(не указано),1
(JSON),2
(XML)
Конфигурации оператора
Ниже приведены конфигурации оператора, доступные для настройки поведения функции сегментации 5G при допродаже.
-
KEY_SUPPORTED_PREMIUM_CAPABILITIES_INT_ARRAY
Список поддерживаемых премиум-возможностей. Это массив int
TelephonyManager.PremiumCapability
. Эти премиум-возможности имеют то же значение, что и соответствующий классNetworkCapabilities.NetCapability
. Если запрашивается премиум-возможность, которая не включена в эту конфигурацию, запрос на покупку завершается ошибкой с результатомCARRIER_DISABLED
.В Android 14 поддерживается только
PREMIUM_CAPABILITY_PRIORITIZE_LATENCY
.-
KEY_PREMIUM_CAPABILITY_MAXIMUM_DAILY_NOTIFICATION_COUNT_INT
Максимальное количество раз, которое уведомление о покупке upsell будет показано пользователю в день. Если достигнут дневной максимум, уведомление о покупке upsell не будет показано, а запросы на покупку (включая запросы сервера прав) будут ограничены до полуночи следующего дня. Запросы на покупку, сделанные после достижения дневного максимума, завершатся неудачей с результатом
PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED
.-
KEY_PREMIUM_CAPABILITY_MAXIMUM_MONTHLY_NOTIFICATION_COUNT_INT
Максимальное количество раз, когда уведомление о покупке upsell будет показано пользователю в месяц. Если достигнут ежемесячный максимум, уведомление о покупке upsell не отображается, а запросы на покупку (включая запросы сервера прав) задерживаются до первого дня следующего месяца. Запросы на покупку, сделанные после достижения ежемесячного максимума, завершаются неудачей с результатом
PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED
.-
KEY_PREMIUM_CAPABILITY_PURCHASE_URL_STRING
Резервный URL-адрес покупки оператора, который будет отображаться пользователю при нажатии на уведомление о допродаже. Если URL-адрес покупки не найден в ответе TS.43 от сервера полномочий, вместо него используется это значение. Если ни URL-адрес из ответа TS.43, ни конфигурация оператора недействительны, запрос на покупку завершается неудачей с результатом
PURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_DISABLED
.-
KEY_PREMIUM_CAPABILITY_SUPPORTED_ON_LTE_BOOL
Разрешить ли покупку премиум-возможностей, когда устройство подключено к Long-Term Evolution (LTE). Если
true
, запросы на покупку можно делать как на LTE, так и на New Radio (NR). Еслиfalse
, запросы на покупку можно делать только на NR, а запросы на LTE завершаются ошибкой с результатомPURCHASE_PREMIUM_CAPABILITY_RESULT_NETWORK_NOT_AVAILABLE
.-
KEY_PREMIUM_CAPABILITY_NOTIFICATION_DISPLAY_TIMEOUT_MILLIS_LONG
Количество времени, в течение которого уведомление о покупке upsell будет показано пользователю, прежде чем оно будет автоматически отменено. Когда уведомление отменяется, последующие запросы задерживаются и завершаются с ошибкой
PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED
.-
KEY_PREMIUM_CAPABILITY_NOTIFICATION_BACKOFF_HYSTERESIS_TIME_MILLIS_LONG
Время, в течение которого последующие запросы на покупку должны быть ограничены после сбоя из-за тайм-аута или отмены пользователем. Если пользователь не нажимает на уведомление о покупке upsell в течение тайм-аута, указанного в
KEY_PREMIUM_CAPABILITY_NOTIFICATION_DISPLAY_TIMEOUT_MILLIS_LONG
, или если он отменяет или отклоняет уведомление, запускается этот таймер отсрочки. Пока этот таймер активен, запросы на покупку терпят неудачу с результатомPURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED
.-
KEY_PREMIUM_CAPABILITY_PURCHASE_CONDITION_BACKOFF_HYSTERESIS_TIME_MILLIS_LONG
Время, в течение которого последующие запросы на покупку должны быть ограничены после сбоя из-за оператора или сети. Если проверка прав не пройдена, URL недоступен или URL-адрес покупки оператора указывает на сбой, запускается этот таймер отсрочки. Пока этот таймер активен, запросы на покупку не выполняются с результатом
PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED
.-
KEY_PREMIUM_CAPABILITY_NETWORK_SETUP_TIME_MILLIS_LONG
Время, в течение которого сеть должна настроить конфигурацию слайсинга для возможности покупки премиум-услуг. В течение этого периода последующие запросы на покупку блокируются и возвращают результат
PURCHASE_PREMIUM_CAPABILITY_RESULT_PENDING_NETWORK_SETUP
. Если сеть не может настроить конфигурацию слайсинга вовремя, приложения могут снова запросить покупку премиум-услуг. Телефония не считает покупку завершенной, пока не будет отправлена соответствующая конфигурация слайсинга, независимо от того, заплатил ли пользователь оператору или нет.
Javascript-интерфейс
Когда пользователь нажимает на уведомление о повышении сети, пользователю отображается объект WebView
с URL-адресом покупки оператора. Операторы могут использовать API, предоставленные в интерфейсе DataBoostWebServiceFlow
Javascript на своем веб-сайте покупки, для связи с приложением покупки слайса.
Веб-сайт оператора может получить запрошенную премиум-возможность с помощью метода getRequestedCapability()
.
Если покупка прошла успешно, веб-сайт оператора должен уведомить приложение покупки слайса с помощью notifyPurchaseSuccessful()
или notifyPurchaseSuccessful(duration)
где duration
— необязательный параметр, указывающий предполагаемую длительность слайса.
Если покупка не удалась, веб-сайт оператора должен уведомить приложение покупки слайсов с помощью метода notifyPurchaseFailed(code, reason)
, где code
— это код ошибки, указывающий причину ошибки, а reason
— это понятная человеку причина ошибки, если код ошибки неизвестен.
Если ни один из этих методов ответа не вызван, покупка не будет считаться завершенной, а запрос на покупку в конечном итоге истечет.
Ниже приведены допустимые коды ошибок, которые может вернуть сайт перевозчика в случае неудачной покупки:
-
FAILURE_CODE_UNKNOWN
-
FAILURE_CODE_CARRIER_URL_UNAVAILABLE
-
FAILURE_CODE_AUTHENTICATION_FAILED
-
FAILURE_CODE_PAYMENT_FAILED
-
FAILURE_CODE_NO_USER_DATA
После завершения покупки оператор должен обновить правила URSP с помощью среза PRIORITIZE_LATENCY
на устройстве пользователя.