Android 9 consente agli operatori di fornire direttamente agli utenti dettagli autorevoli del piano nell'app Impostazioni per ridurre la confusione degli utenti e supportare le chiamate. 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 impostando avvisi e limiti per gestire l'utilizzo dei dati.
Configurazione per operatore
Per configurare i piani dati, gli operatori possono aggiungere funzionalità alle loro app Android esistenti utilizzando le API SubscriptionPlan
.
Le API sono progettate per supportare un'ampia gamma di tipi di piani tariffari, inclusi piani ricorrenti e non ricorrenti, nonché piani che cambiano nel tempo.
Ecco un esempio di come configurare un tipo comune di piano dati che si ripete mensilmente:
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 piani dati solo in una delle seguenti condizioni:
- La scheda SIM ha definito in modo esplicito 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 tariffari dell'operatore. - Il dispositivo ha un'app integrata nell'immagine di sistema che dispone dell'autorizzazione
MANAGE_SUBSCRIPTION_PLANS
.
Le prime due condizioni consentono all'utente di installare l'app dell'operatore, senza richiedere che venga 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 originariamente ha fornito i dettagli al sistema operativo.
Un design suggerito prevede che un'app operatore utilizzi un servizio di manutenzione inattivo per
aggiornare quotidianamente i dettagli del piano dati, ma gli operatori sono liberi di utilizzare un'ampia
gamma di meccanismi, ad esempio la ricezione dei dettagli del piano dati tramite SMS
interni dell'operatore. I servizi di manutenzione inattivi vengono implementati al meglio con un job JobScheduler
che utilizza setRequiresDeviceIdle()
e setRequiresCharging()
.
Utilizzo per sistema operativo
Il sistema operativo utilizza i dettagli del piano dati forniti dalle API SubscriptionPlan nei seguenti modi:
- I dettagli del piano vengono visualizzati tramite l'app Impostazioni per mostrare agli utenti un utilizzo accurato dei dati e per fornire link diretti all'app dell'operatore per opportunità di upgrade/upsell.
- Le soglie di notifica per l'avviso e il limite di 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 è "congestiona", il sistema operativo ritarda i job JobScheduler che possono essere spostati nel tempo, riducendo il carico sulla rete dell'operatore.
- Se l'operatore indica temporaneamente che la rete è "senza limiti", il sistema operativo può segnalare la connessione cellulare come "senza limiti" finché l'operatore non annulla l'override o finché non viene raggiunto il valore di timeout (se fornito).
- Confrontando l'utilizzo attuale dei dati dell'utente con il limite complessivo dei dati, il sistema operativo stima l'utilizzo normale dei dati dell'utente alla fine del ciclo di fatturazione e assegna in modo conservativo il 10% di eventuali dati in eccesso per migliorare l'esperienza utente, ad esempio consentendo alle app di utilizzare 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 loro rapporto con l'operatore e offrendo loro un percorso nell'app dell'operatore per eseguire l'upgrade del piano. I produttori di dispositivi che scelgono di personalizzare l'app Impostazioni sono invitati a continuare a mostrare questi dettagli.
Le API SubscriptionManager
descritte in questa pagina vengono testate da
android.telephony.cts.SubscriptionManagerTest
, il che garantisce che i dettagli del piano dati
possano essere configurati dalle app dell'operatore e che le modifiche vengano propagate all'interno
del sistema operativo.