Implementazione dei piani dati

Android 9 consente agli operatori di fornire direttamente dettagli autorevoli del piano agli utenti 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 specifici 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 dati, inclusi piani ricorrenti e non ricorrenti e piani che cambiano nel tempo.

Ecco un esempio di come configurare un tipo comune di piano dati che ricorre 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 i piani dati solo in una di queste condizioni:

  • La scheda SIM ha definito esplicitamente un'app in grado di gestirla, come definito da SubscriptionManager.canManageSubscription() .
  • L'operatore ha inviato il valore KEY_CONFIG_PLANS_PACKAGE_OVERRIDE_STRING tramite CarrierConfigManager per indicare quale app può gestire i piani dati 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 sia preinstallata in fabbrica nell'immagine del sistema. 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.

Una soluzione suggerita prevede che l'app dell'operatore utilizzi un servizio di manutenzione inattiva per aggiornare quotidianamente i dettagli del piano dati, ma gli operatori sono liberi di utilizzare un'ampia gamma di meccanismi, come la ricezione dei dettagli del piano dati tramite messaggi SMS interni all'operatore. I servizi di manutenzione inattiva vengono implementati al meglio con un lavoro 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 visualizzare l'utilizzo accurato dei dati da parte degli utenti e per fornire collegamenti diretti diretti all'app dell'operatore per opportunità di upgrade/upsell.
  • Le soglie di avviso sull'utilizzo dei dati e di notifica dei limiti vengono configurate automaticamente in base ai dettagli del piano; l'avviso è impostato al 90% del limite.
  • Se l'operatore indica temporaneamente che la rete è "congestionata" , il sistema operativo ritarda i lavori di 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 da parte dell'utente con il limite dati complessivo, il sistema operativo stima il normale utilizzo dei dati da parte dell'utente alla fine del ciclo di fatturazione e alloca in modo conservativo il 10% dei dati in eccesso per migliorare l'esperienza dell'utente, ad esempio consentendo alle app di utilizzare dati multipercorso.

Personalizzazione e validazione

L'app Impostazioni Android mostra tutti i dettagli del piano dati configurato dall'operatore, garantendo che gli utenti visualizzino lo stato più accurato della loro relazione con l'operatore e offrendo agli utenti un percorso nell'app dell'operatore per aggiornare il proprio piano. Si consiglia ai produttori di dispositivi che scelgono di personalizzare l'app Impostazioni di continuare a visualizzare questi dettagli.

Le API SubscriptionManager descritte sopra sono testate da android.telephony.cts.SubscriptionManagerTest , 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.