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 piani ricorrenti e non ricorrenti e 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 applica (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 aggiornare quotidianamente i dettagli del piano dati, ma gli operatori sono liberi di utilizzare un'ampia 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% 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, 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.