Для устройств под управлением 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 и выбора маршрута.
- Возврат к сети по умолчанию, если фрагмент корпоративной сети недоступен
- Маршрутизация трафика из всех приложений рабочего профиля на соответствующее соединение.
Поддержка корпоративного нарезки
- Обнаружение наличия рабочего профиля на устройстве
- Проверка разрешений или направлений маршрутизации, предоставленных ЦОД, используемым ИТ-администратором предприятия.
Базовая сетевая служба включает следующие изменения в модуле модема в Android 12:
- Добавляет большинство общедоступных или системных классов API
android.net.*
в модуль привязки. Расширяет границы модуля 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 на устройстве, устройство должно иметь модем, поддерживающий HAL IRadio 1.6, который имеет API setupDataCall_1_6
. Этот API устанавливает соединение для передачи данных и включает следующие параметры для поддержки нарезки 5G:
-
trafficDescriptor
: определяет дескриптор трафика, отправляемый на модем. -
sliceInfo
: указывает информацию о сетевом срезе, который будет использоваться в случае переключения EPDG на 5G. -
matchAllRuleAllowed
: указывает, разрешено ли использование правила URSP по умолчанию для сопоставления всех данных. Телефония устанавливает для этого параметра значение true для сетей по умолчанию, но не для срезов. Правило соответствия всем применяется к сетям по умолчанию. Когда приложение запрашивает определенный фрагмент, который недоступен, этот фрагмент сообщается как недоступный. Для корпоративных приложений платформа телефонии может вернуться к сети по умолчанию, если корпоративная сеть недоступна.
Модемы также должны реализовывать 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 со специальными ЦОД должны интегрировать API DevicePolicyManager
для поддержки корпоративных клиентов.
Правила УРСП
В этом разделе содержится информация для операторов связи о настройке правил URSP для различных категорий слайсов, включая корпоративный, CBS, трафик с низкой задержкой и трафик с высокой пропускной способностью. При настройке правил URSP для различных категорий фрагментов операторы связи должны использовать следующие значения, специфичные для Android.
ИДЕНТИФИКАТОР | Ценить | Описание |
---|---|---|
Идентификатор ОС | 97a498e3-fc92-5c94-8986-0333d06e4e47 | OSID для Android — это UUID версии 5, созданный с использованием OID ISO пространства имен и имени «Android». |
Операторы связи должны настроить правила URSP для каждого сегмента трафика с компонентом дескриптора трафика как «Идентификатор ОС + тип идентификатора приложения ОС». Например, срез «ENTERPRISE» должен иметь значение 0x97A498E3FC925C9489860333D06E4E470A454E5445525052495345
. Это значение представляет собой объединение OSId, длины OSAppId ( 0x0A
) и OSAppId. Для получения дополнительной информации о типе компонента дескриптора трафика см. таблицу 5.2.1 3GPP TS 24.526 .
В следующей таблице описаны значения OSAppId для различных категорий срезов.
Категория среза | OSAppId | Описание |
---|---|---|
ПРЕДПРИЯТИЕ | 0x454E5445525052495345 | OSAppId — это представление массива байтов строки «ENTERPRISE». |
ПРЕДПРИЯТИЕ2 | 0x454E544552505249534532 | OSAppId — это представление массива байтов строки "ENTERPRISE2". |
ПРЕДПРИЯТИЕ3 | 0x454E544552505249534533 | OSAppId — это представление массива байтов строки "ENTERPRISE3". |
ПРЕДПРИЯТИЕ4 | 0x454E544552505249534534 | OSAppId — это представление массива байтов строки "ENTERPRISE4". |
ПРЕДПРИЯТИЕ5 | 0x454E544552505249534535 | OSAppId — это представление массива байтов строки "ENTERPRISE5". |
CBS | 0x434253 | OSAppId — это представление массива байтов строки «CBS». |
ПРИОРИТИЗАЦИЯ_LATENCY | 0x5052494f524954495a455f4c4154454e4359 | OSAppId — это представление массива байтов строки «PRIORITIZE_LATENCY». |
PRIORITIZE_BANDWIDTH | 0x5052494f524954495a455f42414e445749445448 | OSAppId — это представление массива байтов строки «PRIORITIZE_BANDWIDTH». |
Примеры правил URSP
В следующих таблицах показаны примеры правил URSP для предприятия, CBS, низкой задержки, высокой пропускной способности и трафика по умолчанию.
Предприятие 1
Поддержка Enterprise 1 доступна в Android 12 и более поздних версиях. Ниже приведен пример правила URSP для трафика ENTERPRISE1:
Правило URSP №1 (предприятие1) | |
---|---|
Приоритет | 1 (0x01) |
Дескриптор трафика №1 | |
Идентификатор ОС + тип идентификатора приложения ОС | 0x97A498E3FC925C9489860333D06E4E470A454E5445525052495345 |
Дескриптор выбора маршрута №1 | |
Приоритет | 1 (0x01) |
Компонент №1: S-NSSAI | ССТ:ХХ СД:ГГГГГГ |
Компонент №2: DNN | предприятие |
Дескриптор выбора маршрута №2 | |
Приоритет | 2 (0x02) |
Компонент №1: DNN | предприятие |
Предприятие 2
Поддержка Enterprise 2 доступна в Android 13 и более поздних версиях. Ниже приведен пример правила URSP для трафика ENTERPRISE2:
Правило URSP №2 (предприятие2) | |
---|---|
Приоритет | 2 (0x02) |
Дескриптор трафика №1 | |
Идентификатор ОС + тип идентификатора приложения ОС | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534532 |
Дескриптор выбора маршрута №1 | |
Приоритет | 1 (0x01) |
Компонент №1: S-NSSAI | ССТ:ХХ СД:ГГГГГГ |
Компонент №2: DNN | предприятие2 |
Дескриптор выбора маршрута №2 | |
Приоритет | 2 (0x02) |
Компонент №1: DNN | предприятие2 |
Предприятие 3
Поддержка Enterprise 3 доступна в Android 13 и более поздних версиях. Ниже приведен пример правила URSP для трафика ENTERPRISE3:
Правило URSP №3 (предприятие3) | |
---|---|
Приоритет | 3 (0x03) |
Дескриптор трафика №1 | |
Идентификатор ОС + тип идентификатора приложения ОС | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534533 |
Дескриптор выбора маршрута №1 | |
Приоритет | 1 (0x01) |
Компонент №1: S-NSSAI | ССТ:ХХ СД:ГГГГГГ |
Компонент №2: DNN | предприятие3 |
Дескриптор выбора маршрута №2 | |
Приоритет | 2 (0x02) |
Компонент №1: DNN | предприятие3 |
Предприятие 4
Поддержка Enterprise 4 доступна в Android 13 и более поздних версиях. Ниже приведен пример правила URSP для трафика ENTERPRISE4:
Правило URSP №4 (предприятие4) | |
---|---|
Приоритет | 4 (0x04) |
Дескриптор трафика №1 | |
Идентификатор ОС + тип идентификатора приложения ОС | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534534 |
Дескриптор выбора маршрута №1 | |
Приоритет | 1 (0x01) |
Компонент №1: S-NSSAI | ССТ:ХХ СД:ГГГГГГ |
Компонент №2: DNN | предприятие4 |
Дескриптор выбора маршрута №2 | |
Приоритет | 2 (0x02) |
Компонент №1: DNN | предприятие4 |
Предприятие 5
Поддержка Enterprise 5 доступна в Android 13 и более поздних версиях. Ниже приведен пример правила URSP для трафика ENTERPRISE5:
Правило URSP №5 (предприятие5) | |
---|---|
Приоритет | 5 (0x05) |
Дескриптор трафика №1 | |
Идентификатор ОС + тип идентификатора приложения ОС | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534535 |
Дескриптор выбора маршрута №1 | |
Приоритет | 1 (0x01) |
Компонент №1: S-NSSAI | ССТ:ХХ СД:ГГГГГГ |
Компонент №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 | ССТ:ХХ СД:ГГГГГГ |
Компонент №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 | ССТ:ХХ СД:ГГГГГГ |
Компонент №2: DNN | задержка |
Дескриптор выбора маршрута №2 | |
Приоритет | 2 (0x02) |
Компонент №1: DNN | задержка |
Высокая пропускная способность
Поддержка высокой пропускной способности доступна в Android 13 и более поздних версиях. Ниже приведен пример правила URSP для трафика HIGH_BANDWIDTH:
Правило URSP №8 (высокая пропускная способность) | |
---|---|
Приоритет | 8 (0x08) |
Дескриптор трафика №1 | |
Идентификатор ОС + тип идентификатора приложения ОС | 97A498E3FC925C9489860333D06E4E47145052494f524954495a455f42414e445749445448 |
Дескриптор выбора маршрута №1 | |
Приоритет | 1 (0x01) |
Компонент №1: S-NSSAI | ССТ:ХХ СД:ГГГГГГ |
Компонент №2: DNN | пропускная способность |
Дескриптор выбора маршрута №2 | |
Приоритет | 2 (0x02) |
Компонент №1: DNN | пропускная способность |
По умолчанию
Правило URSP №9 (по умолчанию) | |
---|---|
Приоритет | 9 (0x09) |
Дескриптор трафика №1 | |
все совпадение | Н/Д |
Дескриптор выбора маршрута №1 | |
Приоритет | 1 (0x01) |
Компонент №1: S-NSSAI | ССТ:ХХ СД:ГГГГГГ |
Тестирование
Чтобы проверить нарезку сети 5G, используйте следующий ручной тест.
Чтобы настроить устройство для тестирования, выполните следующие действия:
Убедитесь, что в политике URSP настроено правило, отличное от правила по умолчанию, которое соответствует категории предприятия, и что соответствующий дескриптор выбора маршрута сопоставляет категорию предприятия с срезом предприятия; и правило по умолчанию, направляющее трафик в интернет-срез по умолчанию.
Убедитесь, что на устройстве настроен рабочий профиль.
Согласитесь на использование нарезки сети через ЦОД.
Чтобы проверить поведение нарезки сети 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 ) 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
Максимальное количество раз в день, когда пользователю показывается уведомление о допродаже. Если дневной максимум достигнут, уведомление о дополнительной продаже не отображается, а запросы на покупку (включая запросы сервера разрешений) ограничиваются до полуночи следующего дня. Запросы на покупку, сделанные после достижения дневного максимума, завершаются неудачей с результатом
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, так и по новому радио (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
на устройстве пользователя.