Para dispositivos com o Android 12 ou mais recente, oferece suporte ao fracionamento de rede 5G, o uso de virtualização de rede para dividir uma única conexão de rede em várias conexões virtuais distintas que fornecem diferentes quantidades de recursos para diferentes tipos de tráfego. 5G O fracionamento de rede permite que os operadores de rede dediquem uma parte da rede a fornecer recursos específicos para um determinado segmento de clientes. O Android 12 introduz a os seguintes recursos de fracionamento de rede 5G, que os operadores de rede podem oferecer aos clientes corporativos:
Fração de dispositivos corporativos para dispositivos totalmente gerenciados
Para empresas que oferecem totalmente gerenciado dispositivos da empresa aos funcionários, os provedores de rede ou mais frações de rede corporativa ativas em que o tráfego nos dispositivos da empresa são encaminhados. No Android 12 e versões mais recentes, o Android permite que as operadoras para fornecer frações corporativas por meio de regras URSP, em vez de configurar frações por meio de APNs.
Fração de apps empresariais para dispositivos com perfis de trabalho
Para empresas que usam o perfil de trabalho solução, o Android 12 permite que os dispositivos encaminhem tráfego de todos os aplicativos da para uma fração de rede corporativa. As empresas podem ativar esse recurso por um Controlador de política de dispositivo (DPC).
A solução de perfil de trabalho oferece um nível automático de autenticação e o controle de acesso exigido pelas empresas para garantir que apenas o tráfego apps corporativos no perfil de trabalho são roteados para a fração da rede corporativa. Os aplicativos no perfil de trabalho não precisam ser modificados para solicitar explicitamente o de rede corporativa.
Como o fracionamento de rede 5G funciona no AOSP
O Android 12 introduz o suporte ao fracionamento de rede 5G com adições à base de código de telefonia no AOSP e a Módulo de tethering incorporar APIs de conectividade atuais necessárias para o fracionamento de rede.
A plataforma de telefonia Android oferece APIs de telefonia e HAL para compatibilidade fracionamento com base nas solicitações de rede registradas pelo código de rede principal e pelo 5G. de corte de dados no modem. A Figura 1 descreve os componentes do 5G de divisão de rede.
Figura 1. Arquitetura de fracionamento de rede 5G no AOSP.
A plataforma de telefonia e conectividade oferece suporte a:
- Converter solicitações de rede para categorias de fração em descritores de tráfego que depois são passados ao modem para correspondência de tráfego URSP e roteamento seleção
- Como voltar para a rede padrão se a fração da rede corporativa não for disponível
- Roteando o tráfego de todos os aplicativos no perfil de trabalho para o conexão correspondente
Suporte ao fracionamento corporativo
- Detectar a presença de um perfil de trabalho no dispositivo
- Verificar as permissões ou instruções de rota fornecidas pelo DPC usado pelo administrador de TI da empresa
O serviço principal de rede inclui as seguintes alterações no tethering módulo no Android 12:
- Adiciona a maioria das classes de API públicas ou do sistema
android.net.*
ao tethering módulo Expande os limites do módulo de tethering para incluir:
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
Move o código da VPN para fora do módulo de tethering.
O Android 12 move o código com os recursos abaixo: ao módulo de tethering:
- Recebimento de solicitações de aplicativos para conexões de rede
- Receber solicitações do sistema (por exemplo, "colocar esses aplicativos em uma fração de empresa"; introduzido no Android 12)
- Enviar solicitações do sistema para o código de telefonia que tenta configurar redes ou frações passando pela API HAL e pelo modem
- Informando à rede como rotear o tráfego por app (introduzido no Android 12
- Os apps recebem informações sobre o que está acontecendo com o tráfego de rede
APIs
ConnectivityManager
, comoNetworkCallback
,getActiveNetwork
getNetworkCapabilities
.
Implementação
Para permitir o fracionamento 5G em um dispositivo, ele precisa ter um modem compatível
e a HAL IRadio 1.6, que tem
setupDataCall_1_6
API. Essa API configura uma conexão de dados e inclui os seguintes parâmetros
para oferecer suporte ao fracionamento 5G:
trafficDescriptor
: especifica o descritor de tráfego enviado ao modemsliceInfo
: especifica informações para a fração de rede a ser usada em caso de transferência de EPDG para 5GmatchAllRuleAllowed
: especifica se um URSP padrão de correspondência total está sendo usado. é permitida. A telefonia define como "true" para redes padrão mas não para frações. A regra "Correspondência tudo" é aplicada ao padrão redes VPC. Quando um aplicativo solicita uma fração específica que não é disponível, a fração específica é informada como indisponível. Para apps empresariais, o framework de telefonia poderá usar o sistema quando a rede corporativa não está disponível.
Os modems também precisam implementar o
getSlicingConfig
a menos que ela seja indicada como incompatível com o
getHalDeviceCapabilities
API.
Requisitos empresariais
Confira a seguir os requisitos para as empresas usarem o fracionamento de rede 5G em dispositivos de uma implantação empresarial do Android.
- Garanta que os dispositivos totalmente gerenciados ou de funcionários estejam configurados com um perfil de trabalho
sejam compatíveis com SA 5G e tenham modems compatíveis com a
setupDataCall_1_6
API. - Trabalhar com a transportadora parceira na configuração e no desempenho ou no SLA e as características determinantes.
Ativar o fracionamento 5G em dispositivos configurados com um perfil de trabalho
Para dispositivos configurados com perfis de trabalho, o fracionamento de rede 5G é desativado por
por padrão no AOSP. Para ativar o fracionamento de rede, os administradores de TI da empresa podem ativar ou
o roteamento de tráfego de apps do perfil de trabalho para a fração da rede corporativa em um
por funcionário usando o DPC do EMM, que usa
setPreferentialNetworkServiceEnabled
na classe
DevicePolicyManager
(DPM)
API (introduzida no Android 12).
Os fornecedores de EMM com DPCs personalizados precisam integrar a API DevicePolicyManager
para
suporte a clientes corporativos.
Regras URSP
Esta seção inclui informações para operadoras sobre a configuração de regras URSP para diferentes categorias de frações, como empresarial, CBS, baixa latência, e tráfego de alta largura de banda. Ao configurar regras URSP para diferentes categorias de frações, as operadoras devem usar as seguintes informações específicas do Android e a distribuição dos valores dos dados.
ID | Valor | Descrição |
---|---|---|
ID do OS | 97a498e3-fc92-5c94-8986-0333d06e4e47 |
O OSId para Android é um UUID da versão 5 gerado com o namespace ISO OID e o nome "Android". |
As operadoras precisam configurar regras URSP para cada fração de tráfego com o
descritor como "OS Id + OS App Id type" (ID do SO + tipo de ID do app do SO). Por exemplo, "ENTERPRISE"
fração deve ter um valor de
0x97A498E3FC925C9489860333D06E4E470A454E5445525052495345
:
Esse valor é uma concatenação do OSId, o tamanho do OSAppId (0x0A
).
e o OSAppId.
Para mais informações sobre o tipo de componente do descritor de tráfego, consulte
Tabela 5.2.1 do 3GPP TS 24.526.
A tabela a seguir descreve os valores de OSAppId para diferentes categorias de frações.
Categoria da fração | IDdoAppId | Descrição |
---|---|---|
EMPRESA | 0x454E5445525052495345 |
O OSAppId é uma representação de matriz de bytes da string "ENTERPRISE" |
EMPRESA2 | 0x454E544552505249534532 |
O OSAppId é uma representação de matriz de bytes da string "ENTERPRISE2" |
EMPRESA3 | 0x454E544552505249534533 |
O OSAppId é uma representação de matriz de bytes da string "ENTERPRISE3" |
EMPRESA4 | 0x454E544552505249534534 |
O OSAppId é uma representação de matriz de bytes da string "ENTERPRISE4" |
EMPRESA5 | 0x454E544552505249534535 |
O OSAppId é uma representação de matriz de bytes da string "ENTERPRISE5" |
CBS | 0x434253 |
O OSAppId é uma representação de matriz de bytes da string "CBS" |
PRIORITIZE_LATENCY | 0x5052494f524954495a455f4c4154454e4359 |
O OSAppId é uma representação de matriz de bytes da string "PRIORITIZE_LATENCY" |
PRIORITIZE_BANDWIDTH | 0x5052494f524954495a455f42414e445749445448 |
O OSAppId é uma representação de matriz de bytes da string "PRIORITIZE_BANDWIDTH" |
Exemplo de regras URSP
As tabelas a seguir mostram exemplos de regras URSP para empresas, CBS, baixa latência, alta largura de banda e tráfego padrão.
Empresa 1
O suporte para o Enterprise 1 está disponível no Android 12 e em versões mais recentes. Confira a seguir um exemplo de regra URSP para o tráfego ENTERPRISE1:
Regra URSP no 1 (enterprise1) | |
---|---|
Precedência | 1 (0x01) |
Descritor de tráfego 1 | |
ID do SO + tipo de ID do app do SO | 0x97A498E3FC925C9489860333D06E4E470A454E5445525052495345 |
Descritor de seleção de rota no 1 | |
Precedência | 1 (0x01) |
Componente 1: S-NSSAI | SST:XX SD:YYAAAA |
Componente 2: DNN | enterprise |
Descritor de seleção de rota no 2 | |
Precedência | 2 (0x02) |
Componente 1: DNN | enterprise |
Empresa 2
O suporte para o Enterprise 2 está disponível no Android 13 e em versões mais recentes. Confira a seguir um exemplo de regra URSP para o tráfego ENTERPRISE2:
Regra URSP no 2 (enterprise2) | |
---|---|
Precedência | 2 (0x02) |
Descritor de tráfego 1 | |
ID do SO + tipo de ID do app do SO | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534532 |
Descritor de seleção de rota no 1 | |
Precedência | 1 (0x01) |
Componente 1: S-NSSAI | SST:XX SD:YYAAAA |
Componente 2: DNN | empresa2 |
Descritor de seleção de rota no 2 | |
Precedência | 2 (0x02) |
Componente 1: DNN | empresa2 |
Empresa 3
O suporte para o Enterprise 3 está disponível no Android 13 e em versões mais recentes. Confira a seguir um exemplo de regra URSP para o tráfego ENTERPRISE3:
Regra URSP no 3 (enterprise3) | |
---|---|
Precedência | 3 (0x03) |
Descritor de tráfego 1 | |
ID do SO + tipo de ID do app do SO | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534533 |
Descritor de seleção de rota no 1 | |
Precedência | 1 (0x01) |
Componente 1: S-NSSAI | SST:XX SD:YYAAAA |
Componente 2: DNN | empresa3 |
Descritor de seleção de rota no 2 | |
Precedência | 2 (0x02) |
Componente 1: DNN | empresa3 |
Empresa 4
O suporte para o Enterprise 4 está disponível no Android 13 e em versões mais recentes. Confira a seguir um exemplo de regra URSP para o tráfego ENTERPRISE4:
Regra URSP no 4 (enterprise4) | |
---|---|
Precedência | 4 (0x04) |
Descritor de tráfego 1 | |
ID do SO + tipo de ID do app do SO | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534534 |
Descritor de seleção de rota no 1 | |
Precedência | 1 (0x01) |
Componente 1: S-NSSAI | SST:XX SD:YYAAAA |
Componente 2: DNN | empresa4 |
Descritor de seleção de rota no 2 | |
Precedência | 2 (0x02) |
Componente 1: DNN | empresa4 |
Empresa 5
O suporte para o Enterprise 5 está disponível no Android 13 e em versões mais recentes. Confira a seguir um exemplo de regra URSP para o tráfego ENTERPRISE5:
Regra URSP no 5 (enterprise5) | |
---|---|
Precedência | 5 (0x05) |
Descritor de tráfego 1 | |
ID do SO + tipo de ID do app do SO | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534535 |
Descritor de seleção de rota no 1 | |
Precedência | 1 (0x01) |
Componente 1: S-NSSAI | SST:XX SD:YYAAAA |
Componente 2: DNN | empresa5 |
Descritor de seleção de rota no 2 | |
Precedência | 2 (0x02) |
Componente 1: DNN | empresa5 |
CBS
O suporte à CBS está disponível no Android 13 e em versões mais recentes. Confira a seguir um exemplo de regra URSP para tráfego da CBS:
Regra URSP no 6 (CBS) | |
---|---|
Precedência | 6 (0x06) |
Descritor de tráfego 1 | |
ID do SO + tipo de ID do app do SO | 0x97A498E3FC925C9489860333D06E4E4703434253 |
Descritor de seleção de rota no 1 | |
Precedência | 1 (0x01) |
Componente 1: S-NSSAI | SST:XX SD:YYAAAA |
Componente 2: DNN | cbs |
Descritor de seleção de rota no 2 | |
Precedência | 2 (0x02) |
Componente 1: DNN | cbs |
Baixa latência
O suporte à baixa latência está disponível no Android 13 e em versões mais recentes. Veja a seguir um exemplo de regra URSP para o tráfego LOW_LATENCY:
Regra URSP no 7 (baixa latência) | |
---|---|
Precedência | 7 (0x07) |
Descritor de tráfego 1 | |
ID do SO + tipo de ID do app do SO | 0x97A498E3FC925C9489860333D06E4E47125052494f524954495a455f4c4154454e4359 |
Descritor de seleção de rota no 1 | |
Precedência | 1 (0x01) |
Componente 1: S-NSSAI | SST:XX SD:YYAAAA |
Componente 2: DNN | latência |
Descritor de seleção de rota no 2 | |
Precedência | 2 (0x02) |
Componente 1: DNN | latência |
Alta largura de banda
O suporte para alta largura de banda está disponível no Android 13 e em versões mais recentes. Veja a seguir um exemplo de regra URSP para tráfego HIGH_BANDWIDTH:
Regra URSP no 8 (alta largura de banda) | |
---|---|
Precedência | 8 (0x08) |
Descritor de tráfego 1 | |
ID do SO + tipo de ID do app do SO | 97A498E3FC925C9489860333D06E4E47145052494f524954495a455f42414e445749445448 |
Descritor de seleção de rota no 1 | |
Precedência | 1 (0x01) |
Componente 1: S-NSSAI | SST:XX SD:YYAAAA |
Componente 2: DNN | bandwidth |
Descritor de seleção de rota no 2 | |
Precedência | 2 (0x02) |
Componente 1: DNN | bandwidth |
Padrão
Regra URSP no 9 (padrão) | |
---|---|
Precedência | 9 (0x09) |
Descritor de tráfego 1 | |
combinação | N/A |
Descritor de seleção de rota no 1 | |
Precedência | 1 (0x01) |
Componente 1: S-NSSAI | SST:XX SD:YYAAAA |
Teste
Para testar o fracionamento de rede 5G, use o teste manual a seguir.
Para configurar um dispositivo para testes, faça o seguinte:
Verifique se a política URSP foi configurada com uma regra não padrão que corresponde à categoria empresarial e que a seleção de rota correspondente O descritor associa a categoria da empresa à fração empresarial. e um que direciona o tráfego para a fração padrão de Internet.
Verifique se um perfil de trabalho está configurado no dispositivo.
Ativar o uso do fracionamento de rede pelo DPC
Para testar o comportamento do fracionamento de rede 5G, faça o seguinte:
- Verifique se uma sessão de PDU foi estabelecida com a fração corporativa (para exemplo, usando um endereço IP específico) e que os apps no perfil de trabalho usem nessa sessão de PDU.
- Verificar se uma sessão de PDU separada foi estabelecida com a Internet padrão e que os aplicativos no perfil pessoal usem a sessão PDU.
Upsell por fracionamento 5G
O recurso de upsell por fracionamento 5G, disponível em QPR1 do Android 14, permite que as operadoras ofereçam redes aprimoradas (latência e largura de banda) aos usuários por meio do fracionamento de rede 5G.
O recurso de upsell por fracionamento 5G usa a resposta TS.43 da operadora de direitos autorais para direcionar o fluxo de compra. As operadoras podem usar a resposta para especificar o URL para o WebView de compra da operadora, enviar dados adicionais ao WebView e indica se a fração está provisionada e disponível no rede da operadora de celular.
As operadoras podem personalizar o comportamento do recurso de upsell por fracionamento 5G usando configurações de operadora, que controlam se os pedidos de compra podem ser quando os apps podem solicitar recursos premium e por quanto tempo O framework de telefonia aguarda respostas do usuário ou da rede.
O recurso de upsell por fracionamento 5G fornece uma interface, chamada
DataBoostWebServiceFlow
,
para permitir a comunicação entre o Android e o WebView da operadora.
A Figura 2 mostra o fluxo de compra de upsell por fracionamento 5G:
Figura 2. Fluxo de compra de upsell por fracionamento 5G.
Processo de direitos TS.43
Quando um usuário solicita recursos aprimorados de rede, a Telefonia o framework solicita a configuração de direitos de serviço para os recurso premium. Se a resposta TS.43 for válida, o framework de telefonia usa os campos da resposta HTTP para orientar o pedido de aprovação de compra.
Campos de compra de fração
A configuração de direitos do TS.43 inclui a seguinte compra de fração :
- Status de titularidade
Tecla:
EntitlementStatus
Tipo:
int
Valores compatíveis:
0
(desativado),1
(ativado),2
(incompatível),3
(provisionamento),4
(incluído)- Status do provisionamento
Tecla:
ProvStatus
Tipo:
int
Valores compatíveis:
0
(não provisionado),1
(provisionado),2
(indisponível),3
(em andamento)
O framework de telefonia usa a combinação do status de direito e o status de provisionamento da fração para determinar o estado atual da compra. O resultado pode ser:
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
Se o status do direito for 1
(ativado) e o status do provisionamento for 0
(não provisionado), o framework de telefonia exibirá uma notificação de upsell para
que o usuário compre o bônus pelo WebView da operadora. A tabela a seguir
descreve o comportamento do framework de telefonia para diferentes combinações de
e os valores de status de direito e provisionamento.
Status do provisionamento | |||||
---|---|---|---|---|---|
Não provisionado (0 ) |
Provisionado (1 |
Indisponível (2 ) |
Em andamento (3 ) |
||
Status do direito | Desativado (0 ) |
Falha | Falha | Falha | Falha |
Ativado (1 ) |
Mostrar WebView | Já comprei | Já comprei | Em andamento | |
Incompatível (2 ) |
Falha | Falha | Falha | Falha | |
Provisionamento (3 ) |
Erro na operadora | Erro na operadora | Em andamento | Em andamento | |
Incluídos (4 ) |
Erro na operadora | Já comprei | Já comprei | Erro na operadora |
Campos do fluxo de serviço
A resposta TS.43 especifica o URL, os dados do usuário e o tipo de conteúdo a ser personalizado
o comportamento do WebView de compra pela operadora. Se o tipo de conteúdo não for especificado, o
URL é carregado como uma solicitação GET. Se os dados do usuário existirem, eles serão anexados ao
URL como parâmetro de consulta (por exemplo,
https://www.android.com?encodedValue=Base64EncodedUserData
); e, se não
existir, o URL será usado no estado em que se encontra (por exemplo, https://www.android.com
).
Se o tipo de conteúdo for especificado no formato JSON ou XML, o URL será carregado como um
POST, e os dados do usuário (decodificados se estiverem codificados em Base 64) serão enviados como
os dados para a solicitação POST.
- URL
Tecla:
ServiceFlow_URL
Tipo:
String
Exemplo:
"https://www.android.com"
- Dados do usuário
Tecla:
ServiceFlow_UserData
Tipo:
String
Exemplo:
"encodedValue=Base64EncodedUserData"
- Tipo de conteúdo
Tecla:
ServiceFlow_ContentsType
Tipo:
String
Valores aceitos:
0
(não especificado),1
(JSON),2
(XML)
Configurações da operadora
A seguir estão as configurações de operadora disponíveis para personalizar o do recurso de upsell por fracionamento 5G.
KEY_SUPPORTED_PREMIUM_CAPABILITIES_INT_ARRAY
Uma lista de recursos premium compatíveis. Essa é uma matriz int de
TelephonyManager.PremiumCapability
Esses recursos premium compartilham o mesmo valor que osNetworkCapabilities.NetCapability
. Se um recurso premium for solicitado e não estiver incluído neste do seu site, o pedido de aprovação de compra vai falhar com oCARRIER_DISABLED
resultado.No Android 14, apenas
PREMIUM_CAPABILITY_PRIORITIZE_LATENCY
é suportado.KEY_PREMIUM_CAPABILITY_MAXIMUM_DAILY_NOTIFICATION_COUNT_INT
O número máximo diário de vezes que a notificação de upsell de compra é exibida para o usuário. Se o máximo diário for atingido, a notificação de upsell não será exibida, e as solicitações de compra (incluindo as do servidor de direitos) são limitadas até meia-noite do dia seguinte. O número de solicitações de compra feitas após o limite diário é de quando você chegou a falhar com o
PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED
resultado.KEY_PREMIUM_CAPABILITY_MAXIMUM_MONTHLY_NOTIFICATION_COUNT_INT
É o número máximo mensal de vezes que a notificação de upsell de compra é exibida para o usuário. Se o máximo mensal for atingido, a notificação de upsell não vai aparecer e as solicitações de compra (incluindo as do servidor de direitos) são limitadas até o primeiro dia do mês seguinte. Solicitações de compra feitas após o o limite mensal máximo for alcançado,
PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED
resultado.KEY_PREMIUM_CAPABILITY_PURCHASE_URL_STRING
O URL de compra da operadora de backup a ser exibido ao usuário quando ele clica no notificação de upsell. Se o URL de compra não for encontrado na resposta TS.43 do servidor de direitos, esse valor é usado no lugar. Se nem o URL de resposta TS.43 ou se a configuração da operadora for válida, o pedido de aprovação de compra falha com o
PURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_DISABLED
resultado.KEY_PREMIUM_CAPABILITY_SUPPORTED_ON_LTE_BOOL
Se a compra de recursos premium será permitida quando o dispositivo for conectados à Long-Term Evolution (LTE). Se for
true
, os pedidos de aprovação de compra podem ser em LTE e New Radio (NR). Sefalse
, os pedidos de aprovação de compra só podem ser feitos no NR, e os pedidos feitos em LTE falham com oPURCHASE_PREMIUM_CAPABILITY_RESULT_NETWORK_NOT_AVAILABLE
resultado.KEY_PREMIUM_CAPABILITY_NOTIFICATION_DISPLAY_TIMEOUT_MILLIS_LONG
A quantidade de tempo para mostrar a notificação de upsell de compra ao usuário antes ela será cancelada automaticamente. Quando a notificação é cancelada, as alterações solicitações são limitadas e falham
PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED
resultado.KEY_PREMIUM_CAPABILITY_NOTIFICATION_BACKOFF_HYSTERESIS_TIME_MILLIS_LONG
A quantidade de tempo em que as solicitações de compra subsequentes devem ser limitadas após uma falha causada por tempo limite ou cancelamento do usuário. Se o usuário não clicar a notificação de upsell de compra dentro do tempo limite especificado por
KEY_PREMIUM_CAPABILITY_NOTIFICATION_DISPLAY_TIMEOUT_MILLIS_LONG
ou, se cancelar ou dispensar a notificação, esse timer de espera será iniciado. este timer está ativo, as solicitações de compra vão falhar com oPURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED
resultado.KEY_PREMIUM_CAPABILITY_PURCHASE_CONDITION_BACKOFF_HYSTERESIS_TIME_MILLIS_LONG
A quantidade de tempo em que as solicitações de compra subsequentes devem ser limitadas após uma falha causada pela operadora ou pela rede. Se a verificação de direitos falhar, o URL estiver indisponível ou o URL de compra da operadora indicar uma falha, a espera o timer será iniciado. Enquanto este timer está ativo, as solicitações de compra falham com as
PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED
resultado.KEY_PREMIUM_CAPABILITY_NETWORK_SETUP_TIME_MILLIS_LONG
O tempo em que a rede precisa definir uma configuração de fracionamento. para o recurso de compra premium. Durante esse período, a compra subsequente solicitações são bloqueadas e retornam o
PURCHASE_PREMIUM_CAPABILITY_RESULT_PENDING_NETWORK_SETUP
resultado. Se a rede não conseguir definir uma configuração de fracionamento a tempo, os aplicativos poderão solicitar a compra de recursos premium novamente. A telefonia não considera uma a compra é concluída até que a configuração de fracionamento correspondente seja enviada, independentemente de o usuário ter pagado à operadora ou não.
Interface JavaScript
Quando o usuário clica na notificação de otimização de rede, um objeto WebView
com
o URL de compra da operadora é mostrado ao usuário. As operadoras podem usar as APIs
fornecidas no
DataBoostWebServiceFlow
Interface JavaScript no site de compra para se comunicar com a fração
comprar um app.
O site da operadora pode obter o recurso premium solicitado por meio do método
getRequestedCapability()
:
Se a compra for bem-sucedida, o site da operadora deve notificar a fatia
comprar app pelo notifyPurchaseSuccessful()
ou
notifyPurchaseSuccessful(duration)
, em que duration
é um parâmetro opcional
indicando a duração pretendida da fração.
Se a compra não for concluída, o site da operadora precisará notificar a fatia
comprar o app usando o método notifyPurchaseFailed(code, reason)
, em que code
é o código de falha que indica o motivo da falha e reason
é o
um motivo legível por humanos para a falha se o código for desconhecido.
Se um desses métodos de resposta não for chamado, a compra não será considerada concluída, e o pedido de aprovação de compra expirou.
A seguir estão os códigos de falha válidos que o site da operadora pode retornar para falha na compra:
FAILURE_CODE_UNKNOWN
FAILURE_CODE_CARRIER_URL_UNAVAILABLE
FAILURE_CODE_AUTHENTICATION_FAILED
FAILURE_CODE_PAYMENT_FAILED
FAILURE_CODE_NO_USER_DATA
Quando a compra for concluída, a operadora deverá atualizar o
Regras URSP
com a fração PRIORITIZE_LATENCY
ao dispositivo do usuário.