Per i dispositivi con Android 12 o versioni successive, Android supporta lo slicing della rete 5G, ovvero l'utilizzo della virtualizzazione di rete per suddividere le singole connessioni di rete in più connessioni virtuali distinte che forniscono quantità diverse di risorse a diversi tipi di traffico. Lo slicing della rete 5G consente agli operatori di rete di dedicare una parte della rete alla fornitura di funzionalità specifiche per un determinato segmento di clienti. Android 12 introduce le seguenti funzionalità di network slicing aziendale 5G, che gli operatori di rete possono fornire ai propri clienti aziendali:
Slicing dei dispositivi aziendali per i dispositivi completamente gestiti
Le aziende che forniscono ai propri dipendenti dispositivi aziendali completamente gestiti possono usufruire di uno o più slice di rete aziendale attivi verso i quali viene indirizzato il traffico sui dispositivi aziendali. A partire da Android 12, Android consente agli operatori di fornire sezioni aziendali tramite regole URSP, anziché impostare sezioni tramite APN.
Slicing delle app aziendali per i dispositivi con profili di lavoro
Per le aziende che utilizzano la soluzione del profilo di lavoro, Android 12 consente ai dispositivi di instradare il traffico da tutte le app nel profilo di lavoro a uno slice di rete aziendale. Le aziende possono attivare questa funzionalità tramite un controller dei criteri dei dispositivi (DPC).
La soluzione del profilo di lavoro fornisce un livello automatico di autenticazione e controllo dell'accesso di cui le aziende hanno bisogno per garantire che solo il traffico proveniente dalle app aziendali nel profilo di lavoro venga indirizzato allo slice di rete aziendale. Non è necessario modificare le app nel profilo di lavoro per richiedere esplicitamente la sezione della rete aziendale.
Come funziona lo slicing della rete 5G in AOSP
Android 12 introduce il supporto per lo slicing della rete 5G tramite aggiunte al codice di base della telefonia in AOSP e al modulo Tethering per incorporare le API di connettività esistenti necessarie per lo slicing della rete.
La piattaforma di telefonia Android fornisce API HAL e di telefonia per supportare lo slicing in base alle richieste di rete inviate dal codice di rete principale e alle funzionalità di slicing 5G del modem. La Figura 1 descrive i componenti della funzionalità di slicing della rete 5G.
Figura 1. Architettura di slicing della rete 5G in AOSP.
La piattaforma di telefonia e connettività supporta:
- Conversione delle richieste di rete per le categorie di slice in descrittori di traffico che vengono poi trasmessi al modem per la corrispondenza del traffico URSP e la selezione del percorso
- Ripristino della rete predefinita se il segmento di rete aziendale non è disponibile
- Instradare il traffico da tutte le app nel profilo di lavoro alla connessione corrispondente
Supporto dello slicing aziendale
- Rilevamento della presenza di un profilo di lavoro sul dispositivo
- Controllo delle autorizzazioni o delle indicazioni stradali fornite dal DPC utilizzato dall'amministratore IT dell'azienda
Il servizio di rete di base include le seguenti modifiche al modulo Tethering in Android 12:
- Aggiunge la maggior parte delle classi API di sistema o pubbliche di
android.net.*
al modulo Tethering Espande i limiti del modulo Tethering per includere:
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
Sposta il codice VPN dal modulo Tethering
Android 12 sposta il codice con le seguenti funzionalità nel modulo Tethering:
- Ricevere richieste da app per connessioni di rete
- Ricezione di richieste dal sistema (ad esempio, "inserisci queste app in un slice aziendale"; introdotta in Android 12)
- Invio di richieste dal sistema al codice di telefonia, che tenta di configurare reti o sezioni passando attraverso l'API HAL e il modem
- Comunicare a netd come instradare il traffico in base all'app (introdotto in Android 12)
- Informare le app su cosa sta succedendo al loro traffico di rete tramite API
ConnectivityManager
comeNetworkCallback
,getActiveNetwork
,getNetworkCapabilities
.
Implementazione
Per supportare lo slicing 5G su un dispositivo, questo deve avere un modem che supporti l'HAL IRadio 1.6 con l'API setupDataCall_1_6
. Questa API configura una connessione dati e include i seguenti parametri per supportare lo slicing 5G:
trafficDescriptor
: specifica il descrittore di traffico inviato al modemsliceInfo
: specifica le informazioni per il segmento di rete da utilizzare in caso di trasferimento da EPDG a 5GmatchAllRuleAllowed
: specifica se è consentito l'utilizzo di una regola URSP predefinita per tutte le corrispondenze. La telefonia imposta questo valore su true per le reti predefinite, ma non per le sezioni. La regola corrispondi a tutti viene applicata alle reti predefinite. Quando un'app richiede uno slice specifico non disponibile, questo viene segnalato come non disponibile. Per le app aziendali, il framework di telefonia può ricorrere alla rete predefinita se la rete aziendale non è disponibile.
I modem devono anche implementare l'API
getSlicingConfig
a meno che non sia segnalata come non supportata dall'API
getHalDeviceCapabilities
.
Requisiti aziendali
Di seguito sono descritti i requisiti per l'utilizzo dello slicing della rete 5G da parte delle aziende su dispositivi in un deployment di Android Enterprise.
- Assicurati che i dispositivi completamente gestiti o dei dipendenti configurati con un profilo di lavoro supportino il 5G SA con modem che supportano l'API
setupDataCall_1_6
. - Collabora con il corriere partner per la configurazione e le prestazioni delle sezioni o per le caratteristiche dello SLA (accordo sul livello del servizio).
Attivare lo slicing 5G sui dispositivi configurati con un profilo di lavoro
Per i dispositivi configurati con profili di lavoro, lo slicing della rete 5G è disattivato per impostazione predefinita in AOSP. Per attivare il slicing della rete, gli amministratori IT aziendali possono attivare o disattivare il routing del traffico delle app del profilo di lavoro allo slice della rete aziendale su base per dipendente tramite il DPC EMM, che utilizza il metodo setPreferentialNetworkServiceEnabled
nell'API DevicePolicyManager
(DPM) (introdotta in Android 12).
I fornitori EMM con DPC personalizzati devono integrare l'API DevicePolicyManager
per supportare i client aziendali.
Regole URSP
Questa sezione include informazioni per gli operatori sulla configurazione delle regole URSP per diverse categorie di sezioni, tra cui traffico aziendale, CBS, a bassa latenza e a larghezza di banda elevata. Quando configurano le regole URSP per diverse categorie di slice, gli operatori devono utilizzare i seguenti valori specifici per Android.
ID | Valore | Descrizione |
---|---|---|
OSId | 97a498e3-fc92-5c94-8986-0333d06e4e47 |
L'OSId per Android è un UUID versione 5 generato con lo spazio dei nomi ISO OID e il nome "Android". |
Gli operatori devono configurare le regole URSP per ogni traffico del segmento con il componente del descrittore del traffico impostato su "Tipo ID utente + ID app OS". Ad esempio, il valore della frazione "ENTERPRISE" deve essere 0x97A498E3FC925C9489860333D06E4E470A454E5445525052495345
.
Questo valore è una concatenazione di OSId, della lunghezza di OSAppId (0x0A
)
e di OSAppId.
Per ulteriori informazioni sul tipo di componente del descrittore di traffico, consulta
3GPP TS 24.526 Tabella 5.2.1.
Nella tabella seguente vengono descritti i valori OSAppId per le diverse categorie di sezioni.
Categoria di sezione | OSAppId | Descrizione |
---|---|---|
ENTERPRISE | 0x454E5445525052495345 |
OSAppId è una rappresentazione di un array di byte della stringa "ENTERPRISE" |
ENTERPRISE2 | 0x454E544552505249534532 |
OSAppId è una rappresentazione di un array di byte della stringa "ENTERPRISE2" |
ENTERPRISE3 | 0x454E544552505249534533 |
OSAppId è una rappresentazione array di byte della stringa "ENTERPRISE3" |
ENTERPRISE4 | 0x454E544552505249534534 |
OSAppId è una rappresentazione di un array di byte della stringa "ENTERPRISE4" |
ENTERPRISE5 | 0x454E544552505249534535 |
OSAppId è una rappresentazione di un array di byte della stringa "ENTERPRISE5" |
CBS | 0x434253 |
OSAppId è una rappresentazione sotto forma di array di byte della stringa "CBS" |
PRIORITIZE_LATENCY | 0x5052494f524954495a455f4c4154454e4359 |
OSAppId è una rappresentazione di array di byte della stringa "PRIORITIZE_LATENCY" |
PRIORITIZE_BANDWIDTH | 0x5052494f524954495a455f42414e445749445448 |
OSAppId è una rappresentazione di array di byte della stringa "PRIORITIZE_BANDWIDTH" |
Regole URSP di esempio
Le seguenti tabelle mostrano esempi di regole URSP per aziende, CBS, bassa latenza, larghezza di banda elevata e traffico predefinito.
Enterprise 1
Il supporto per Enterprise 1 è disponibile su Android 12 e versioni successive. Di seguito è riportato un esempio di regola URSP per il traffico ENTERPRISE1:
Regola URSP 1 (enterprise1) | |
---|---|
Precedenza | 1 (0x01) |
Descrittore del traffico 1 | |
ID sistema operativo + tipo di ID app del sistema operativo | 0x97A498E3FC925C9489860333D06E4E470A454E5445525052495345 |
Descrittore di selezione percorso 1 | |
Precedenza | 1 (0x01) |
Componente 1: S-NSSAI | Imposte:XX SD:AAAAAA |
Componente 2: DNN | azienda |
Descrittore selezione percorso 2 | |
Precedenza | 2 (0x02) |
Componente 1: rete neurale di apprendimento profondo | azienda |
Enterprise 2
Il supporto di Enterprise 2 è disponibile in Android 13 e versioni successive. Di seguito è riportato un esempio di regola URSP per il traffico ENTERPRISE2:
Regola URSP 2 (enterprise2) | |
---|---|
Precedenza | 2 (0x02) |
Descrittore del traffico 1 | |
ID sistema operativo + tipo di ID app del sistema operativo | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534532 |
Descrittore di selezione percorso 1 | |
Precedenza | 1 (0x01) |
Componente 1: S-NSSAI | Imposte:XX SD:AAAAAA |
Componente 2: DNN | enterprise2 |
Descrittore selezione percorso 2 | |
Precedenza | 2 (0x02) |
Componente 1: rete neurale di apprendimento profondo | enterprise2 |
Enterprise 3
Il supporto di Enterprise 3 è disponibile in Android 13 e versioni successive. Di seguito è riportato un esempio di regola URSP per il traffico ENTERPRISE3:
Regola URSP 3 (enterprise3) | |
---|---|
Precedenza | 3 (0x03) |
Descrittore del traffico 1 | |
ID sistema operativo + tipo di ID app del sistema operativo | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534533 |
Descrittore di selezione percorso 1 | |
Precedenza | 1 (0x01) |
Componente 1: S-NSSAI | Imposte:XX SD:AAAAAA |
Componente 2: DNN | enterprise3 |
Descrittore di selezione della route 2 | |
Precedenza | 2 (0x02) |
Componente 1: rete neurale di apprendimento profondo | enterprise3 |
Enterprise 4
Il supporto di Enterprise 4 è disponibile in Android 13 e versioni successive. Di seguito è riportato un esempio di regola URSP per il traffico ENTERPRISE4:
Regola URSP n. 4 (enterprise4) | |
---|---|
Precedenza | 4 (0x04) |
Descrittore del traffico 1 | |
ID sistema operativo + tipo di ID app del sistema operativo | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534534 |
Descrittore di selezione della route n. 1 | |
Precedenza | 1 (0x01) |
Componente 1: S-NSSAI | Imposte:XX SD:AAAAAA |
Componente 2: DNN | enterprise4 |
Descrittore di selezione della route 2 | |
Precedenza | 2 (0x02) |
Componente 1: rete neurale di apprendimento profondo | enterprise4 |
Enterprise 5
Il supporto per Enterprise 5 è disponibile in Android 13 e versioni successive. Di seguito è riportato un esempio di regola URSP per il traffico di ENTERPRISE5:
Regola URSP 5 (enterprise5) | |
---|---|
Precedenza | 5 (0x05) |
Descrittore di traffico n. 1 | |
ID sistema operativo + tipo di ID app del sistema operativo | 0x97A498E3FC925C9489860333D06E4E470B454E544552505249534535 |
Descrittore di selezione della route n. 1 | |
Precedenza | 1 (0x01) |
Componente 1: S-NSSAI | Imposte:XX SD:AAAAAA |
Componente 2: DNN | enterprise5 |
Descrittore selezione percorso 2 | |
Precedenza | 2 (0x02) |
Componente 1: rete neurale di apprendimento profondo | enterprise5 |
CBS
Il supporto di CBS è disponibile in Android 13 e versioni successive. Di seguito è riportato un esempio di regola URSP per il traffico CBS:
Regola URSP 6 (CBS) | |
---|---|
Precedenza | 6 (0x06) |
Descrittore del traffico 1 | |
ID sistema operativo + tipo di ID app del sistema operativo | 0x97A498E3FC925C9489860333D06E4E4703434253 |
Descrittore di selezione percorso 1 | |
Precedenza | 1 (0x01) |
Componente 1: S-NSSAI | Imposte:XX SD:AAAAAA |
Componente 2: DNN | cbs |
Descrittore di selezione della route 2 | |
Precedenza | 2 (0x02) |
Componente 1: rete neurale di apprendimento profondo | cbs |
Bassa latenza
Il supporto della bassa latenza è disponibile in Android 13 e versioni successive. Di seguito è riportato un esempio di regola URSP per il traffico LOW_LATENCY:
Regola URSP n. 7 (bassa latenza) | |
---|---|
Precedenza | 7 (0x07) |
Descrittore del traffico 1 | |
ID sistema operativo + tipo di ID app del sistema operativo | 0x97A498E3FC925C9489860333D06E4E47125052494f524954495a455f4c4154454e4359 |
Descrittore di selezione percorso 1 | |
Precedenza | 1 (0x01) |
Componente 1: S-NSSAI | Imposte:XX SD:AAAAAA |
Componente 2: DNN | latenza |
Descrittore di selezione della route 2 | |
Precedenza | 2 (0x02) |
Componente 1: rete neurale di tipo DNN | latenza |
Larghezza di banda elevata
Il supporto della larghezza di banda elevata è disponibile in Android 13 e versioni successive. Di seguito è riportato un esempio di regola URSP per il traffico HIGH_BANDWIDTH:
Regola URSP 8 (larghezza di banda elevata) | |
---|---|
Precedenza | 8 (0x08) |
Descrittore del traffico 1 | |
ID sistema operativo + tipo di ID app del sistema operativo | 97A498E3FC925C9489860333D06E4E47145052494f524954495a455f42414e445749445448 |
Descrittore di selezione percorso 1 | |
Precedenza | 1 (0x01) |
Componente 1: S-NSSAI | Imposte:XX SD:AAAAAA |
Componente 2: DNN | per il caricamento |
Descrittore di selezione della route 2 | |
Precedenza | 2 (0x02) |
Componente 1: rete neurale di apprendimento profondo | per il caricamento |
Predefinito
Regola URSP n. 9 (predefinita) | |
---|---|
Precedenza | 9 (0x09) |
Descrittore di traffico n. 1 | |
match-all | N/D |
Descrittore di selezione percorso 1 | |
Precedenza | 1 (0x01) |
Componente 1: S-NSSAI | Imposte:XX SD:AAAAAA |
Test
Per testare lo slicing della rete 5G, utilizza il seguente test manuale.
Per configurare un dispositivo per i test:
Assicurati che il criterio URSP sia configurato con una regola non predefinita che corrisponda alla categoria aziendale e che il descrittore di selezione della route corrispondente mappa la categoria aziendale alla sezione enterprise. Inoltre, una regola predefinita che indirizza il traffico alla sezione di internet predefinita.
Assicurati che sul dispositivo sia configurato un profilo di lavoro.
Attivare l'utilizzo del slicing della rete tramite il DPC
Per testare il comportamento di suddivisione della rete 5G:
- Verifica che sia stata stabilita una sessione PDU con lo slice aziendale (ad esempio utilizzando un indirizzo IP specifico) e che le app nel profilo di lavoro utilizzino questa sessione PDU.
- Verifica che sia stata stabilita una sessione PDU separata con la slice internet predefinita e che le app nel profilo personale utilizzino la sessione PDU.
Upsell di slicing 5G
La funzionalità di upsell di slicing 5G, disponibile da Android 14-QPR1, consente agli operatori di offrire ai propri utenti funzionalità di rete avanzate (latenza e larghezza di banda) tramite lo slicing della rete 5G.
La funzionalità di upsell per lo slicing 5G utilizza la risposta TS.43 del server dei diritti dell'operatore per gestire il flusso di acquisto. Gli operatori possono utilizzare la risposta per specificare l'URL della webview di acquisto dell'operatore, inviare dati aggiuntivi alla webview e indicare se la frazione è stata configurata e se è disponibile sulla rete dell'operatore.
Gli operatori possono personalizzare il comportamento della funzionalità di upsell per il 5G tramite configurazioni degli operatori, che controllano se possono essere effettuate richieste di acquisto, quando le app possono richiedere funzionalità premium e per quanto tempo il framework di telefonia attende le risposte dell'utente o della rete.
La funzionalità di upsell per lo slicing 5G fornisce un'interfaccia, chiamata
DataBoostWebServiceFlow
,
per consentire la comunicazione tra Android e la webview dell'operatore.
La figura 2 mostra il flusso di acquisto dell'upsell dello slicing 5G:
Figura 2. Flusso di acquisto di upsell per lo slicing 5G.
Procedura di attribuzione dei diritti TS.43
Quando un utente invia una richiesta di funzionalità di rete avanzate, il framework di telefonia richiede la configurazione del diritto di servizio per la funzionalità premium richiesta. Se la risposta TS.43 è valida, il framework di telefonia utilizza i campi della risposta HTTP per gestire la richiesta di acquisto.
Campi di suddivisione degli acquisti
La configurazione dei diritti TS.43 include i seguenti campi di acquisto di slice:
- Stato diritto
Tasto:
EntitlementStatus
Tipo:
int
Valori supportati:
0
(disattivato),1
(abilitato),2
(non compatibile),3
(provisioning),4
(incluso)- Stato del provisioning
Tasto:
ProvStatus
Tipo:
int
Valori supportati:
0
(non eseguito il provisioning),1
(eseguito il provisioning),2
(non disponibile),3
(in corso)
Il framework di telefonia utilizza la combinazione dello stato del diritto e dello stato del provisioning per determinare lo stato attuale dell'acquisto di slice. Il risultato può essere uno dei seguenti:
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 lo stato del diritto è 1
(abilitato) e lo stato del provisioning è 0
(non eseguito), il framework di telefonia mostra una notifica di upsell per invitare
l'utente ad acquistare l'aumento tramite la webview dell'operatore. La tabella seguente descrive il comportamento del framework di telefonia per diverse combinazioni di valori di stato del provisioning e dei diritti.
Stato del provisioning | |||||
---|---|---|---|---|---|
Nessun provisioning (0 ) |
Eseguito il provisioning (1 ) |
Non disponibile (2 ) |
In corso (3 ) |
||
Stato dei diritti | Disattivata (0 ) |
Operazione non riuscita | Operazione non riuscita | Operazione non riuscita | Operazione non riuscita |
Attivate (1 ) |
Mostra WebView | Già acquistato | Già acquistato | In corso | |
Incompatibile (2 ) |
Operazione non riuscita | Operazione non riuscita | Operazione non riuscita | Operazione non riuscita | |
Provisioning in corso (3 ) |
Errore dell'operatore | Errore dell'operatore | In corso | In corso | |
Incluso (4 ) |
Errore dell'operatore | Già acquistato | Già acquistato | Errore dell'operatore |
Campi relativi al flusso di servizio
La risposta TS.43 specifica l'URL, i dati utente e il tipo di contenuti per personalizzare
il comportamento del componente WebView di acquisto dell'operatore. Se il tipo di contenuti non è specificato, l'URL viene caricato come richiesta GET. Se i dati utente esistono, vengono aggiunti all'URL come parametro di query (ad esempio https://www.android.com?encodedValue=Base64EncodedUserData
); in caso contrario, l'URL viene utilizzato così com'è (ad esempio https://www.android.com
).
Se il tipo di contenuti è specificato in formato JSON o XML, l'URL viene caricato come
richiesta POST e i dati utente (decodificati, se codificati in Base 64) vengono inviati come
dati per l'elemento
- URL
Tasto:
ServiceFlow_URL
Tipo:
String
Esempio:
"https://www.android.com"
- Dati utente
Tasto:
ServiceFlow_UserData
Tipo:
String
Esempio:
"encodedValue=Base64EncodedUserData"
- Tipo di contenuti
Tasto:
ServiceFlow_ContentsType
Tipo:
String
Valori supportati:
0
(non specificato),1
(JSON),2
(XML)
Configurazioni dell'operatore
Di seguito sono riportate le configurazioni dell'operatore disponibili per personalizzare il comportamento della funzionalità di upsell di slicing 5G.
KEY_SUPPORTED_PREMIUM_CAPABILITIES_INT_ARRAY
Un elenco delle funzionalità premium supportate. Questo è un array int di
TelephonyManager.PremiumCapability
. Queste funzionalità premium condividono lo stesso valore della corrispondenteNetworkCapabilities.NetCapability
classe. Se viene richiesta una funzionalità premium e non è inclusa in questa configurazione, la richiesta di acquisto non va a buon fine con il risultatoCARRIER_DISABLED
.In Android 14 è supportato solo
PREMIUM_CAPABILITY_PRIORITIZE_LATENCY
.KEY_PREMIUM_CAPABILITY_MAXIMUM_DAILY_NOTIFICATION_COUNT_INT
Il numero massimo giornaliero di volte in cui la notifica di upsell dell'acquisto viene mostrata all'utente. Se il limite massimo giornaliero viene raggiunto, la notifica di upsell non viene visualizzata e le richieste di acquisto (incluse le richieste al server dei diritti) vengono limitate fino a mezzanotte del giorno successivo. Le richieste di acquisto effettuate dopo il raggiungimento del valore massimo giornaliero non vanno a buon fine con il risultato
PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED
.KEY_PREMIUM_CAPABILITY_MAXIMUM_MONTHLY_NOTIFICATION_COUNT_INT
Il numero massimo mensile di volte in cui la notifica di upsell dell'acquisto viene mostrata all'utente. Se il limite mensile viene raggiunto, la notifica di upsell non viene visualizzata e le richieste di acquisto (incluse le richieste al server dei diritti) vengono limitate fino al primo giorno del mese successivo. Le richieste di acquisto effettuate dopo il raggiungimento del limite mensile massimo non vanno a buon fine con il risultato
PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED
.KEY_PREMIUM_CAPABILITY_PURCHASE_URL_STRING
L'URL di acquisto dell'operatore di backup da mostrare all'utente quando fa clic sulla notifica di upsell. Se l'URL di acquisto non viene trovato nella risposta TS.43 del server dei diritti, viene utilizzato questo valore. Se né l'URL della risposta TS.43 né la configurazione dell'operatore sono validi, la richiesta di acquisto non va a buon fine con il risultato
PURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_DISABLED
.KEY_PREMIUM_CAPABILITY_SUPPORTED_ON_LTE_BOOL
Indica se consentire l'acquisto di funzionalità premium quando il dispositivo è collegato a Long-Term Evolution (LTE). Se
true
, le richieste di acquisto possono essere effettuate sia su LTE che su New Radio (NR). Sefalse
, le richieste di acquisto possono essere effettuate solo su NR e le richieste effettuate su LTE non vanno a buon fine con il risultatoPURCHASE_PREMIUM_CAPABILITY_RESULT_NETWORK_NOT_AVAILABLE
.KEY_PREMIUM_CAPABILITY_NOTIFICATION_DISPLAY_TIMEOUT_MILLIS_LONG
La quantità di tempo necessaria per mostrare all'utente la notifica di upsell dell'acquisto prima che venga annullata automaticamente. Quando la notifica viene annullata, le richieste successive vengono limitate e non vanno a buon fine con il risultato
PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED
.KEY_PREMIUM_CAPABILITY_NOTIFICATION_BACKOFF_HYSTERESIS_TIME_MILLIS_LONG
Il periodo di tempo durante il quale le richieste di acquisto successive devono essere limitate dopo un errore a causa di un timeout o dell'annullamento da parte dell'utente. Se l'utente non fa clic sulla notifica di upsell di acquisto entro il timeout specificato da
KEY_PREMIUM_CAPABILITY_NOTIFICATION_DISPLAY_TIMEOUT_MILLIS_LONG
oppure se annulla o ignora la notifica, viene avviato il timer di backoff. Mentre questo timer è attivo, le richieste di acquisto non vanno a buon fine con il risultatoPURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED
.KEY_PREMIUM_CAPABILITY_PURCHASE_CONDITION_BACKOFF_HYSTERESIS_TIME_MILLIS_LONG
Il periodo di tempo durante il quale le richieste di acquisto successive devono essere limitate dopo un errore dovuto all'operatore o alla rete. Se il controllo dei diritti non va a buon fine, l'URL non è disponibile o l'URL di acquisto dell'operatore indica un errore, viene avviato questo timer di ritiro. Mentre questo timer è attivo, le richieste di acquisto non vanno a buon fine e viene visualizzato il risultato di
PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED
.KEY_PREMIUM_CAPABILITY_NETWORK_SETUP_TIME_MILLIS_LONG
Il periodo di tempo entro il quale la rete deve impostare una configurazione di slicing per la funzionalità premium di acquisto. Durante questo periodo, le successive richieste di acquisto vengono bloccate e restituiscono il risultato di
PURCHASE_PREMIUM_CAPABILITY_RESULT_PENDING_NETWORK_SETUP
. Se la rete non riesce a configurare una configurazione di slicing in tempo, le app possono nuovamente richiedere l'acquisto di funzionalità premium. La telefonia non considera un acquisto completato finché non viene inviata la configurazione di slicing corrispondente, indipendentemente dal fatto che l'utente abbia pagato o meno l'operatore.
Interfaccia JavaScript
Quando l'utente fa clic sulla notifica relativa all'aumento di velocità della rete, viene visualizzato un oggetto WebView
con
l'URL di acquisto dell'operatore. Gli operatori possono utilizzare le API
fornite nell'interfaccia JavaScript di DataBoostWebServiceFlow
del sito web di acquisto per comunicare con l'app di acquisto della sezione.
Il sito web dell'operatore può ottenere la funzionalità premium richiesta tramite il metodogetRequestedCapability()
.
Se l'acquisto va a buon fine, il sito web dell'operatore deve inviare una notifica all'app di acquisto della fetta tramite notifyPurchaseSuccessful()
o
notifyPurchaseSuccessful(duration)
, dove duration
è un parametro facoltativo
che indica la durata prevista della fetta.
Se l'acquisto non va a buon fine, il sito web dell'operatore deve inviare una notifica all'app di acquisto di slice tramite il metodo notifyPurchaseFailed(code, reason)
, dove code
è il codice di errore che indica il motivo dell'errore e reason
è il motivo dell'errore leggibile da una persona se il codice di errore è sconosciuto.
Se nessuno di questi metodi di risposta viene chiamato, l'acquisto non verrà considerato completato e la richiesta di acquisto scadrà.
Di seguito sono riportati i codici di errore validi che il sito web del corriere può restituire per un errore di acquisto:
FAILURE_CODE_UNKNOWN
FAILURE_CODE_CARRIER_URL_UNAVAILABLE
FAILURE_CODE_AUTHENTICATION_FAILED
FAILURE_CODE_PAYMENT_FAILED
FAILURE_CODE_NO_USER_DATA
Al termine dell'acquisto, l'operatore deve aggiornare le regole URSP con la frazione PRIORITIZE_LATENCY
sul dispositivo dell'utente.