Для устройств под управлением Android 12 и более поздних версий Android поддерживает функцию сегментации сетей 5G — использование сетевой виртуализации для разделения отдельных сетевых подключений на несколько отдельных виртуальных соединений, которые предоставляют разное количество ресурсов для разных типов трафика. Разделение сетей 5G позволяет операторам связи выделять часть сети для предоставления определенных функций определенному сегменту клиентов. В Android 12 представлены следующие возможности сегментации корпоративных сетей 5G, которые операторы связи могут предоставлять своим корпоративным клиентам:
Разделение корпоративных устройств на полностью управляемые устройства
Для предприятий, предоставляющих своим сотрудникам полностью управляемые корпоративные устройства, сетевые провайдеры могут предоставить один или несколько активных сегментов корпоративной сети, куда будет направляться трафик с корпоративных устройств. Начиная с Android 12, Android позволяет операторам предоставлять корпоративные сегменты через правила URSP, а не настраивать сегменты через APN.
Разделение корпоративных бизнес-приложений на части для устройств с рабочими профилями
Для предприятий, использующих решение для рабочих профилей , Android 12 позволяет устройствам направлять трафик из всех приложений рабочего профиля в корпоративный сетевой фрагмент. Предприятия могут включить эту возможность через контроллер политик устройств (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 из модуля модема
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 «соответствие всем» по умолчанию. Телефония устанавливает это значение для сетей по умолчанию, но не для слайсов. Правило «соответствие всем» применяется к сетям по умолчанию. Когда приложение запрашивает определённый слайс, который недоступен, этот слайс сообщается как недоступный. Для корпоративных приложений фреймворк телефонии может использовать сеть по умолчанию, если корпоративная сеть недоступна.
Модемы также должны реализовывать 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
В этом разделе содержится информация для операторов связи о настройке правил URSP для различных категорий слайсов, включая корпоративный трафик, CBS, трафик с низкой задержкой и трафик с высокой пропускной способностью. При настройке правил URSP для различных категорий слайсов операторы связи должны использовать следующие значения, специфичные для Android.
ИДЕНТИФИКАТОР | Ценить | Описание |
---|---|---|
OSId | 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, таблица 5.2.1 .
В следующей таблице описаны значения OSAppId для различных категорий срезов.
Категория среза | OSAppId | Описание |
---|---|---|
ПРЕДПРИЯТИЕ | 0x454E5445525052495345 | OSAppId — это представление строки «ENTERPRISE» в виде массива байтов. |
ПРЕДПРИЯТИЕ2 | 0x454E544552505249534532 | OSAppId — это представление строки «ENTERPRISE2» в виде массива байтов. |
ENTERPRISE3 | 0x454E544552505249534533 | OSAppId — это представление строки «ENTERPRISE3» в виде массива байтов. |
ENTERPRISE4 | 0x454E544552505249534534 | OSAppId — это представление строки «ENTERPRISE4» в виде массива байтов. |
ENTERPRISE5 | 0x454E544552505249534535 | OSAppId — это представление строки «ENTERPRISE5» в виде массива байтов. |
CBS | 0x434253 | OSAppId — это представление строки «CBS» в виде массива байтов. |
PRIORITIZE_LATENCY | 0x5052494f524954495a455f4c4154454e4359 | OSAppId — это представление строки «PRIORITIZE_LATENCY» в виде массива байтов. |
PRIORITIZE_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
Поддержка 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 |
Низкая задержка
Поддержка низкой задержки доступна в 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 | задержка |
Высокая пропускная способность
Поддержка высокой пропускной способности доступна в 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 использует ответ 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
Список поддерживаемых премиум-возможностей. Это массив целых чисел типа
TelephonyManager.PremiumCapability
. Эти премиум-возможности имеют то же значение, что и соответствующий классNetworkCapabilities.NetCapability
. Если запрашивается премиум-возможность, которая не включена в эту конфигурацию, запрос на покупку завершается ошибкой с результатомCARRIER_DISABLED
.В Android 14 поддерживается только
PREMIUM_CAPABILITY_PRIORITIZE_LATENCY
.-
KEY_PREMIUM_CAPABILITY_MAXIMUM_DAILY_NOTIFICATION_COUNT_INT
Максимальное количество показов пользователю уведомлений о покупке дополнительных услуг в день. При достижении максимального количества показов уведомление о покупке дополнительных услуг не отображается, а запросы на покупку (включая запросы на сервер управления правами) задерживаются до полуночи следующего дня. Запросы на покупку, сделанные после достижения максимального количества, завершаются ошибкой
PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED
.-
KEY_PREMIUM_CAPABILITY_MAXIMUM_MONTHLY_NOTIFICATION_COUNT_INT
Максимальное количество показов пользователю уведомлений о покупке дополнительных услуг в месяц. При достижении месячного максимума уведомление о покупке дополнительных услуг не отображается, а запросы на покупку (включая запросы на сервер управления правами) задерживаются до первого числа следующего месяца. Запросы на покупку, сделанные после достижения месячного максимума, отклоняются с кодом
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
Время отображения уведомления о покупке до его автоматической отмены. После отмены уведомления последующие запросы блокируются и завершаются ошибкой
PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED
.-
KEY_PREMIUM_CAPABILITY_NOTIFICATION_BACKOFF_HYSTERESIS_TIME_MILLIS_LONG
Время, в течение которого последующие запросы на покупку должны быть отложены после сбоя из-за тайм-аута или отмены пользователем. Если пользователь не нажимает на уведомление о покупке в течение тайм-аута, заданного параметром
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, предоставляемые в интерфейсе Javascript DataBoostWebServiceFlow
на своем сайте покупки, для взаимодействия с приложением покупки слайса.
Веб-сайт оператора может получить запрошенную премиум-возможность с помощью метода 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
на устройстве пользователя.