Implementación de planes de datos

Android 9 permite a los operadores proporcionar directamente detalles autorizados del plan a los usuarios en la aplicación Configuración para reducir la confusión del usuario y las llamadas de soporte. En dispositivos con Android 4.0 y superior, los usuarios pueden configurar manualmente los detalles del plan de datos específicos de su operador en la aplicación Configuración, por ejemplo, estableciendo advertencias y límites para administrar su uso de datos.

Configuración por operador

Para configurar planes de datos, los operadores pueden agregar funcionalidad a sus aplicaciones de Android existentes utilizando las API SubscriptionPlan . Las API están diseñadas para admitir una amplia gama de tipos de planes de datos, incluidos planes recurrentes y no recurrentes, y planes que cambian con el tiempo.

A continuación se muestra un ejemplo de cómo configurar un tipo común de plan de datos que se repite mensualmente:

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

El dispositivo solo permite que una aplicación configure planes de datos bajo una de estas condiciones:

  • La tarjeta SIM ha definido explícitamente una aplicación que puede administrarla, según lo definido por SubscriptionManager.canManageSubscription() .
  • El operador ha enviado el valor KEY_CONFIG_PLANS_PACKAGE_OVERRIDE_STRING a través de CarrierConfigManager para indicar qué aplicación puede administrar los planes de datos del operador.
  • El dispositivo tiene una aplicación integrada en la imagen del sistema que tiene el permiso MANAGE_SUBSCRIPTION_PLANS .

Las dos primeras condiciones permiten que el usuario instale la aplicación del operador, sin necesidad de que esté preinstalada en la imagen del sistema de fábrica. El sistema operativo exige (y el CDD exige) que todos los detalles del plan de datos configurado estén protegidos y solo estén disponibles para la aplicación del operador que originalmente proporcionó los detalles al sistema operativo.

Un diseño sugerido es que una aplicación de operador utilice un servicio de mantenimiento inactivo para actualizar los detalles del plan de datos diariamente, pero los operadores son libres de utilizar una amplia gama de mecanismos, como recibir detalles del plan de datos a través de mensajes SMS internos del operador. Los servicios de mantenimiento inactivo se implementan mejor con un trabajo JobScheduler que utiliza setRequiresDeviceIdle() y setRequiresCharging() .

Uso por sistema operativo

El sistema operativo utiliza los detalles del plan de datos proporcionados por las API de SubscriptionPlan de las siguientes maneras:

  • Los detalles del plan aparecen a través de la aplicación Configuración para mostrar el uso de datos preciso a los usuarios y proporcionar enlaces profundos directos a la aplicación del operador para oportunidades de actualización/venta adicional.
  • Los umbrales de advertencia de uso de datos y notificación de límites se configuran automáticamente según los detalles del plan; la advertencia se establece en el 90% del límite.
  • Si el operador indica temporalmente que la red está "congestionada" , el sistema operativo retrasa los trabajos de JobScheduler que pueden diferirse en el tiempo, lo que reduce la carga en la red del operador.
  • Si el operador indica temporalmente que la red está "no medida" , el sistema operativo puede informar la conexión celular como "no medida" hasta que el operador borre la anulación o hasta que se alcance el valor de tiempo de espera (si se proporciona).
  • Al comparar el uso de datos actual del usuario con el límite general de datos, el sistema operativo estima el uso de datos normal del usuario al final del ciclo de facturación y asigna de manera conservadora el 10% de cualquier dato excedente para mejorar la experiencia del usuario, por ejemplo, permitiendo que las aplicaciones usen datos de múltiples rutas.

Personalización y validación

La aplicación de configuración de Android muestra todos los detalles del plan de datos configurado por el operador, lo que garantiza que los usuarios vean el estado más preciso de su relación con el operador y les ofrece una ruta hacia la aplicación del operador para actualizar su plan. Se recomienda a los fabricantes de dispositivos que eligen personalizar la aplicación Configuración que continúen mostrando estos detalles.

Las API SubscriptionManager descritas anteriormente se prueban mediante android.telephony.cts.SubscriptionManagerTest , lo que garantiza que las aplicaciones del operador puedan configurar los detalles del plan de datos y que los cambios se propaguen dentro del sistema operativo.