Personalización del comportamiento del dispositivo para usuarios sin equilibrio

Los dispositivos Android sin saldo de datos permiten el paso del tráfico de red, lo que requiere que los operadores y las empresas de telecomunicaciones implementen protocolos de mitigación. Android implementa una solución genérica que permite a los operadores y empresas de telecomunicaciones indicar cuando un dispositivo se ha quedado sin saldo.

La plataforma Android proporciona una aplicación de operador predeterminada con un comportamiento predeterminado para la mitigación del tráfico basado en la señal de detección del portal cautivo. También brinda a los operadores y fabricantes de equipos originales la oportunidad de personalizar el comportamiento con bajo costo y gran flexibilidad.

Ejemplos y fuente

La aplicación del operador predeterminada se encuentra en platform/frameworks/base/packages/CarrierDefaultApp/ .

Implementación

La aplicación de operador predeterminada está configurada para brindar una mejor experiencia a los operadores no configurados desde el primer momento. Los transportistas pueden utilizar este comportamiento predeterminado. También pueden anular el comportamiento predeterminado agregando asignaciones de señal-acción al archivo XML de configuración del operador. Pueden decidir no utilizar la aplicación predeterminada y, en su lugar, utilizar los privilegios UICC con su propia aplicación de operador independiente.

Introducción a la implementación

Señales

El marco de Android admite la configuración de acciones para las siguientes señales parametrizadas:

  • TelephonyIntents.ACTION_CARRIER_SIGNAL_REDIRECTED
  • TelephonyIntents.ACTION_CARRIER_SIGNAL_REQUEST_NETWORK_FAILED

Estas señales se encuentran en frameworks/base/telephony/java/com/android/internal/telephony/TelephonyIntents.java .

Acciones apoyadas

La aplicación del operador predeterminada define un conjunto de acciones admitidas que se pueden asignar a señales admitidas. Estos se definen en CarrierActionUtils.java :

    public static final int CARRIER_ACTION_ENABLE_METERED_APNS               = 0;
    public static final int CARRIER_ACTION_DISABLE_METERED_APNS              = 1;
    public static final int CARRIER_ACTION_DISABLE_RADIO                     = 2;
    public static final int CARRIER_ACTION_ENABLE_RADIO                      = 3;
    public static final int CARRIER_ACTION_SHOW_PORTAL_NOTIFICATION          = 4;
    public static final int CARRIER_ACTION_SHOW_NO_DATA_SERVICE_NOTIFICATION = 5;
    public static final int CARRIER_ACTION_CANCEL_ALL_NOTIFICATIONS          = 6;

Nota: Si un operador implementa su propia aplicación independiente, puede implementar soporte para señales distintas a las mencionadas en esta sección. También pueden definir y configurar sus propias acciones.

Asignaciones de señal-acción predeterminadas

Configure acciones predeterminadas siguiendo este proceso:

  1. Defina una clave para las señales admitidas.

    Las asignaciones predeterminadas de señal a acción se definen en CarrierConfigManager.java . Cada una de las señales soportadas tiene una clave:

    public static final String KEY_CARRIER_DEFAULT_ACTIONS_ON_REDIRECTION_STRING_ARRAY = "carrier_default_actions_on_redirection_string_array";
    public static final String KEY_CARRIER_DEFAULT_ACTIONS_ON_DCFAILURE_STRING_ARRAY =
    "carrier_default_actions_on_dcfailure_string_array";
    
  2. Asociar acciones predeterminadas a claves de señalización.

    Los identificadores de acción predeterminados están asociados a las claves de señal:

    sDefaults.putStringArray(KEY_CARRIER_DEFAULT_ACTIONS_ON_REDIRECTION_STRING_ARRAY,                new String[]{
                    "1, 4"
                    //1: CARRIER_ACTION_SHOW_PORTAL_NOTIFICATION
                    //4: CARRIER_ACTION_DISABLE_METERED_APNS
             });
    

    El marco de telefonía asigna estas acciones a las señales correspondientes.

Anulación de acciones predeterminadas

Puede definir acciones personalizadas para señales admitidas en el archivo XML de configuración del operador asociando ID de acción a las claves de señal (definidas en CarrierConfigManager.java ). Por ejemplo, la siguiente asignación deshabilita las APN medidas y muestra una notificación del portal sobre la redirección:

<string-array name="carrier_default_actions_on_redirection_string_array" num="2">
            <item value="1" />
            <item value="4" />
</string-array>

El marco de telefonía carga estas configuraciones y anula las acciones predeterminadas.

Validación

No existen pruebas CTS, CTS Verifier o GTS para esta función.

Utilice estas pruebas de validación manual para validar la característica:

  1. Validar la notificación de señal de desequilibrio del dispositivo de la empresa de telecomunicaciones.
  2. Verifique la limitación del redireccionamiento del tráfico durante el estado desequilibrado y el Wi-Fi apagado.
  3. Verifique que el tráfico de la red esté reducido y que la interfaz de usuario de notificación aparezca durante el estado desequilibrado.
  4. Valide la función de llamada de voz/VoLTE durante el estado de desequilibrio.
  5. Verifique que las videollamadas estén bloqueadas en estado desequilibrado.
  6. Con Wi-Fi activado, verifique que el usuario pueda continuar navegando por la web y que el tráfico de navegación no active el tráfico de red mientras esté desequilibrado.
  7. Valide las funciones Wi-Fi, WFC y Bluetooth durante el estado de desequilibrio.
  8. Apague el Wi-Fi. Verifique la interfaz de usuario de notificación de desequilibrio y que el tráfico de navegación normal no se redirija al sitio web de registro de la empresa de telecomunicaciones. Verifique que al hacer clic en el enlace en la interfaz de usuario de notificación, el navegador acceda al sitio web de registro de la empresa de telecomunicaciones.
  9. Verifique que alternar el modo avión no restablezca el estado de limitación del tráfico.
  10. Verifique que al intercambiar una SIM en servicio se restablezca el estado del tráfico de la red.
  11. Verifique que al volver a insertar la SIM desequilibrada se reinicia la redirección del tráfico y se acelera nuevamente el tráfico de la red.
  12. Verifique que al reiniciar el teléfono se reactive la redirección y se recupere la interfaz de usuario de aceleración de tráfico y notificaciones.
  13. Toque la notificación "portal cautivo". Verifique que se haya establecido una conexión de red restringida para permitir al usuario agregar créditos.
  14. Verifique que la recarga o reactivación del saldo de la SIM haga que el tráfico de la red celular se recupere y que desaparezca el enlace Telco y la notificación sin saldo.
  15. Prueba de cordura después de la recuperación del servicio de datos.

La aplicación predeterminada proporciona algunos ejemplos de pruebas unitarias y un script para ejecutarlas (consulte tests/runtest.sh ). Cuando implementa una versión o comportamiento personalizado, debe reflejar esas personalizaciones en pruebas unitarias dedicadas.