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 los dispositivos que ejecutan Android 4.0 y superior, los usuarios pueden configurar manualmente los detalles de su plan de datos específico del operador en la aplicación Configuración, por ejemplo, establecer 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 de 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.

Este es 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, tal como lo define 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 en la fábrica. El sistema operativo impone (y la CDD requiere) que todos los detalles del plan de datos configurados 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 use un servicio de mantenimiento inactivo para actualizar los detalles del plan de datos diariamente, pero los operadores pueden usar 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 usa 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 se muestran a través de la aplicación Configuración para mostrar el uso de datos precisos a los usuarios y proporcionar enlaces profundos directos a la aplicación del operador para oportunidades de actualización/venta adicional.
  • La advertencia de uso de datos y los umbrales de notificación de límite se configuran automáticamente en función de 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 se pueden cambiar en el tiempo, lo que reduce la carga en la red del operador.
  • Si el operador indica temporalmente que la red es "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 de datos general, 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 exceso de datos para mejorar la experiencia del usuario, por ejemplo, al permitir que las aplicaciones usen datos de rutas múltiples.

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 a la aplicación del operador para actualizar su plan. Se recomienda a los fabricantes de dispositivos que elijan personalizar la aplicación Configuración que continúen mostrando estos detalles.

android.telephony.cts.SubscriptionManagerTest prueba las API de SubscriptionManager descritas anteriormente, 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.