Android 9 consente agli operatori di fornire direttamente agli utenti dettagli autorevoli sul piano nell'app Impostazioni per ridurre la confusione e le chiamate di assistenza. Sui dispositivi con Android 4.0 e versioni successive, gli utenti possono configurare manualmente i dettagli del piano dati specifico dell'operatore nell'app Impostazioni, ad esempio impostare avvisi e limiti per gestire l'utilizzo dei dati.
Configurazione in base all'operatore
Per configurare i piani dati, gli operatori possono aggiungere funzionalità alle loro app per Android esistenti utilizzando le API SubscriptionPlan
.
Le API sono progettate per supportare un'ampia gamma di tipi di piani dati, inclusi i piani ricorrenti e non ricorrenti e i piani che cambiano nel tempo.
Ecco un esempio di come configurare un tipo comune di piano dati ricorrente mensile:
SubscriptionManager sm =
context.getSystemService(SubscriptionManager.class);
sm.setSubscriptionPlans(subId, Lists.newArrayList(
SubscriptionPlan.Builder.createRecurringMonthly(
ZonedDateTime.parse("2016-12-03T10:00:00Z"))
.setTitle("G-Mobile")
.setDataLimit(4_000_000_000L,
SubscriptionPlan.LIMIT_BEHAVIOR_BILLED)
.setDataUsage(200_493_293L, dataUsageTimestamp)
.build()));
Il dispositivo consente a un'app di configurare i piani dati solo in una di queste condizioni:
- La scheda SIM ha definito esplicitamente un'app che può gestirla, come definito da
SubscriptionManager.canManageSubscription()
. - L'operatore ha inviato il valore
KEY_CONFIG_PLANS_PACKAGE_OVERRIDE_STRING
tramiteCarrierConfigManager
per indicare quale app può gestire i piani dati dell'operatore. - Nell'immagine di sistema del dispositivo è integrata un'app che dispone
dell'autorizzazione
MANAGE_SUBSCRIPTION_PLANS
.
Le prime due condizioni consentono all'utente di installare l'app dell'operatore senza che debba essere preinstallata nell'immagine di sistema in fabbrica. Il sistema operativo impone (e il CDD richiede) che tutti i dettagli del piano dati configurato siano protetti e resi disponibili solo all'app dell'operatore che li ha forniti inizialmente al sistema operativo.
Un design suggerito è che un'app dell'operatore utilizzi un servizio di manutenzione inattivo per actualizare quotidianamente i dettagli del piano dati, ma gli operatori sono liberi di utilizzare una vasta gamma di meccanismi, ad esempio ricevere i dettagli del piano dati tramite messaggi SMS interni all'operatore. I servizi di manutenzione inattiva vengono implementati al meglio con un job JobScheduler
che usa
setRequiresDeviceIdle()
e
setRequiresCharging()
.
Utilizzo per sistema operativo
Il sistema operativo utilizza i dettagli del piano dati forniti dalle API SubscriptionPlan nel seguente modo:
- I dettagli del piano vengono visualizzati tramite l'app Impostazioni per mostrare agli utenti dati accurati sull'utilizzo e fornire link diretti all'app dell'operatore per opportunità di upgrade/upsell.
- Le soglie di avviso e di notifica del limite per l'utilizzo dei dati vengono configurate automaticamente in base ai dettagli del piano. L'avviso è impostato sul 90% del limite.
- Se l'operatore indica temporaneamente che la rete è "congestionata", il sistema operativo ritarda i job JobScheduler che possono essere spostati in time-shift, riducendo il carico sulla rete dell'operatore.
- Se l'operatore indica temporaneamente che la rete è "senza limiti", il sistema operativo può segnalare la connessione di rete come "senza limiti" finché l'operatore non annulla l'override o fino a quando non viene raggiunto il valore di timeout (se fornito).
- Confrontando l'utilizzo attuale dei dati dell'utente con il limite di dati complessivo, il sistema operativo stima l'utilizzo normale dei dati dell'utente alla fine del ciclo di fatturazione e alloca in modo conservativo il 10% degli eventuali dati in eccesso per migliorare l'esperienza utente, ad esempio consentendo alle app di utilizzare i dati multipath.
Personalizzazione e convalida
L'app Impostazioni di Android mostra tutti i dettagli del piano dati configurato dall'operatore, garantendo che gli utenti vedano lo stato più accurato del rapporto con l'operatore e offrendo agli utenti un percorso verso l'app dell'operatore per eseguire l'upgrade del loro piano. Per continuare a visualizzare questi dettagli, consigliamo ai produttori di dispositivi che scelgono di personalizzare l'app Impostazioni.
Le API SubscriptionManager
descritte in questa pagina vengono testate da
android.telephony.cts.SubscriptionManagerTest
, che garantisce che i dettagli del piano di telefonia
puoi essere configurato dalle app dell'operatore e che le modifiche vengano propagate all'interno
del sistema operativo.