Implementa piani dati

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 tramite CarrierConfigManager 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.