Implémenter des plans de données

Android 9 permet aux opérateurs de fournir directement aux utilisateurs des informations faisant autorité sur les forfaits dans l'application Paramètres afin de réduire la confusion et les appels au service client. Sur les appareils équipés d'Android 4.0 ou version ultérieure, les utilisateurs peuvent configurer manuellement les détails de leur forfait Internet spécifique à l'opérateur dans l'application Paramètres. Par exemple, ils peuvent définir des avertissements et des limites pour gérer leur consommation de données.

Configuration par l'opérateur

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

Voici un exemple de configuration d'un type courant de forfait Internet récurrent mensuel :

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 ne permet à une application de configurer des forfaits de données que dans l'une des conditions suivantes :

  • La carte SIM a explicitement défini une application qui peut la gérer, comme défini par SubscriptionManager.canManageSubscription().
  • L'opérateur a transmis la KEY_CONFIG_PLANS_PACKAGE_OVERRIDE_STRING valeur 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'utilisateur d'installer l'application de l'opérateur sans qu'il soit nécessaire de la préinstaller dans l'image système en usine. Le système d'exploitation applique (et le CDD exige) que tous les détails configurés du forfait Internet soient protégés et ne soient mis à la disposition que de l'application de l'opérateur qui a initialement fourni les détails au système d'exploitation.

Une conception suggérée consiste à ce qu'une application d'opérateur utilise un service de maintenance inactif pour mettre à jour quotidiennement les détails du forfait Internet, mais les opérateurs sont libres d'utiliser un large éventail de mécanismes, par exemple en recevant les détails du forfait Internet par le biais de messages SMS internes à l'opérateur. Les services de maintenance inactifs sont mieux implémentés avec une JobScheduler tâche qui utilise setRequiresDeviceIdle() et setRequiresCharging().

Utilisation par le système d'exploitation

Le système d'exploitation utilise les détails du forfait Internet fournis par les API SubscriptionPlan de la manière suivante :

Personnalisation et validation

L'application Paramètres Android affiche tous les détails du forfait de données configurés par l'opérateur, ce qui permet aux utilisateurs de voir l'état le plus précis de leur relation avec l'opérateur et leur offre un moyen d'accéder à 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 à afficher ces informations.

Les API SubscriptionManager décrites sur cette page sont testées par android.telephony.cts.SubscriptionManagerTest, ce qui garantit que les détails du forfait Internet peuvent être configurés par les applications de l'opérateur et que les modifications sont propagées dans le système d'exploitation.