Implementare i 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 per operatore

Per configurare i piani dati, gli operatori possono aggiungere funzionalità alle proprie app 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 delle seguenti 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.
  • 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 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 sono 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 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 nel tempo, riducendo il carico sulla rete dell'operatore.
  • Se l'operatore indica temporaneamente che la rete è "senza misurazione", il sistema operativo può segnalare la connessione di rete come "senza misurazione" 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% di eventuali dati in eccesso per migliorare l'esperienza utente, ad esempio consentendo alle app di utilizzare dati su più percorsi.

Personalizzazione e convalida

L'app Impostazioni di Android mostra tutti i dettagli del piano dati configurato dall'operatore, assicurando agli utenti di visualizzare lo stato più accurato del loro rapporto con l'operatore, e offrendo loro un percorso per accedere all'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, 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.