Mise en œuvre de plans de données

Android 9 permet aux opérateurs de fournir directement les détails du forfait faisant autorité aux utilisateurs dans l'application Paramètres afin de réduire la confusion des utilisateurs et de prendre en charge les appels. Sur les appareils exécutant Android 4.0 et versions ultérieures, les utilisateurs peuvent configurer manuellement les détails de leur forfait de données spécifique à l'opérateur dans l'application Paramètres, par exemple en définissant des avertissements et des limites pour gérer leur utilisation des données.

Configuration par transporteur

Pour configurer les forfaits de données, les opérateurs peuvent ajouter des fonctionnalités à leurs applications Android existantes à l'aide des API SubscriptionPlan . Les API sont conçues pour prendre en charge un large éventail de types de forfaits de données, y compris des forfaits récurrents et non récurrents, ainsi que des forfaits qui évoluent au fil du temps.

Voici un exemple de configuration d'un type courant de forfait de données récurrent mensuellement :

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()));

L'appareil permet à une application de configurer des forfaits de données uniquement dans l'une de ces conditions :

  • La carte SIM a explicitement défini une application capable de la gérer, comme défini par SubscriptionManager.canManageSubscription() .
  • L'opérateur a poussé la valeur KEY_CONFIG_PLANS_PACKAGE_OVERRIDE_STRING via CarrierConfigManager pour indiquer quelle application peut gérer les forfaits de données de l'opérateur.
  • L'appareil dispose d'une application intégrée à l'image système qui dispose de l'autorisation MANAGE_SUBSCRIPTION_PLANS .

Les deux premières conditions permettent à l'application opérateur d'être installée par l'utilisateur, sans nécessiter qu'elle soit préinstallée dans l'image système en usine. Le système d'exploitation impose (et le CDD l'exige) que tous les détails du plan de données configuré soient protégés et soient uniquement mis à la disposition de l'application de l'opérateur qui a initialement fourni les détails au système d'exploitation.

Une conception suggérée est qu'une application d'opérateur utilise un service de maintenance inactif pour mettre à jour quotidiennement les détails du forfait de données, mais les opérateurs sont libres d'utiliser un large éventail de mécanismes, tels que la réception des détails du forfait de données via des messages SMS internes à l'opérateur. Les services de maintenance inactifs sont mieux implémentés avec un travail JobScheduler qui utilise setRequiresDeviceIdle() et setRequiresCharging() .

Utilisation par système d'exploitation

Le système d'exploitation utilise les détails du plan de données fournis par les API SubscriptionPlan des manières suivantes :

  • Les détails du plan sont affichés via l'application Paramètres pour afficher l'utilisation précise des données aux utilisateurs et pour fournir des liens profonds directs vers l'application de l'opérateur pour les opportunités de mise à niveau/vente incitative.
  • Les seuils d'avertissement d'utilisation des données et de notification de limite sont automatiquement configurés en fonction des détails du plan ; l'avertissement est réglé à 90 % de la limite.
  • Si l'opérateur indique temporairement que le réseau est « encombré » , le système d'exploitation retarde les tâches JobScheduler qui peuvent être décalées dans le temps, réduisant ainsi la charge sur le réseau de l'opérateur.
  • Si l'opérateur indique temporairement que le réseau est « non mesuré » , le système d'exploitation peut signaler la connexion cellulaire comme « non mesurée » jusqu'à ce que l'opérateur autorise le remplacement ou jusqu'à ce que la valeur du délai d'attente (si fournie) soit atteinte.
  • En comparant l'utilisation actuelle des données de l'utilisateur avec la limite globale de données, le système d'exploitation estime l'utilisation normale des données de l'utilisateur à la fin du cycle de facturation et alloue de manière prudente 10 % de toutes les données excédentaires pour améliorer l'expérience utilisateur, par exemple en permettant aux applications d'utiliser données multi-chemins.

Personnalisation et validation

L'application Paramètres Android affiche tous les détails du forfait de données configuré par l'opérateur, garantissant que les utilisateurs voient l'état le plus précis de leur relation avec l'opérateur et offrant aux utilisateurs un chemin vers l'application de l'opérateur pour mettre à niveau leur forfait. Il est recommandé aux fabricants d'appareils qui choisissent de personnaliser l'application Paramètres de continuer à faire apparaître ces détails.

Les API SubscriptionManager décrites ci-dessus sont testées par android.telephony.cts.SubscriptionManagerTest , qui garantit que les détails du plan de données peuvent être configurés par les applications de l'opérateur et que les modifications sont propagées au sein du système d'exploitation.