Implementare i piani dati

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