Personalización del comportamiento del dispositivo para usuarios fuera de balance,Personalización del comportamiento del dispositivo para usuarios fuera de balance

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 cuándo 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 transportistas y OEM la oportunidad de personalizar el comportamiento con bajo costo y gran flexibilidad.

Ejemplos y fuente

La aplicación de 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 para los operadores no configurados desde el primer momento. Los transportistas pueden usar 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 usar la aplicación predeterminada y, en su lugar, usar los privilegios de la UICC con su propia aplicación de operador independiente.

Introducción a la implementación

Señales

El marco de trabajo 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 admitidas

La aplicación de operador predeterminada define un conjunto de acciones compatibles que se pueden asignar a señales compatibles. 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 las 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 por defecto a teclas de señal.

    Los ID 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.

Anular 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 los APN medidos 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 hay pruebas CTS, CTS Verifier o GTS para esta función.

Utilice estas pruebas de validación manual para validar la función:

  1. Valide la notificación de señal fuera de balance del dispositivo de telecomunicaciones.
  2. Verifique la limitación del redireccionamiento del tráfico durante el estado fuera de balance y Wi-Fi apagado.
  3. Verifique que el tráfico de la red esté desactivado y que aparezca la IU de notificación durante el estado fuera de balance.
  4. Valide la función de llamada de voz/VoLTE durante el estado fuera de balance.
  5. Verifique que las videollamadas estén bloqueadas en estado fuera de balance.
  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é en estado de desequilibrio.
  7. Valide las funciones Wi-Fi, WFC y Bluetooth durante el estado fuera de balance.
  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 telecomunicaciones. Verifique que al hacer clic en el vínculo en la interfaz de usuario de notificación, el navegador acceda al sitio web de registro de telecomunicaciones.
  9. Verifique que alternar el modo avión no restablece el estado de limitación del tráfico.
  10. Verifique que el intercambio de una tarjeta SIM en servicio restablece el estado del tráfico de la red.
  11. Verifique que al volver a insertar la tarjeta SIM desequilibrada se reinicia la redirección del tráfico y se vuelve a acelerar el tráfico de la red.
  12. Verifique que reiniciar el teléfono reactiva la redirección y recupera el acelerador de tráfico y la interfaz de usuario de notificación.
  13. Toque la notificación "portal cautivo". Verifique que se establezca una conexión de red restringida para permitir que el usuario agregue créditos.
  14. Verifique que la recarga o reactivación del saldo de la tarjeta SIM provoque que el tráfico de la red celular se recupere y que desaparezcan 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 (ver tests/runtest.sh ). Cuando implementa una versión o un comportamiento personalizado, debe reflejar esas personalizaciones en pruebas unitarias dedicadas.

,

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 cuándo 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 transportistas y OEM la oportunidad de personalizar el comportamiento con bajo costo y gran flexibilidad.

Ejemplos y fuente

La aplicación de 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 para los operadores no configurados desde el primer momento. Los transportistas pueden usar 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 usar la aplicación predeterminada y, en su lugar, usar los privilegios de la UICC con su propia aplicación de operador independiente.

Introducción a la implementación

Señales

El marco de trabajo 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 admitidas

La aplicación de operador predeterminada define un conjunto de acciones compatibles que se pueden asignar a señales compatibles. 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 las 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 por defecto a teclas de señal.

    Los ID 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.

Anular 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 los APN medidos 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 hay pruebas CTS, CTS Verifier o GTS para esta función.

Utilice estas pruebas de validación manual para validar la función:

  1. Valide la notificación de señal fuera de balance del dispositivo de telecomunicaciones.
  2. Verifique la limitación del redireccionamiento del tráfico durante el estado fuera de balance y Wi-Fi apagado.
  3. Verifique que el tráfico de la red esté desactivado y que aparezca la IU de notificación durante el estado fuera de balance.
  4. Valide la función de llamada de voz/VoLTE durante el estado fuera de balance.
  5. Verifique que las videollamadas estén bloqueadas en estado fuera de balance.
  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é en estado de desequilibrio.
  7. Valide las funciones Wi-Fi, WFC y Bluetooth durante el estado fuera de balance.
  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 telecomunicaciones. Verifique que al hacer clic en el vínculo en la interfaz de usuario de notificación, el navegador acceda al sitio web de registro de telecomunicaciones.
  9. Verifique que alternar el modo avión no restablece el estado de limitación del tráfico.
  10. Verifique que el intercambio de una tarjeta SIM en servicio restablece el estado del tráfico de la red.
  11. Verifique que al volver a insertar la tarjeta SIM desequilibrada se reinicia la redirección del tráfico y se vuelve a acelerar el tráfico de la red.
  12. Verifique que reiniciar el teléfono reactiva la redirección y recupera el acelerador de tráfico y la interfaz de usuario de notificación.
  13. Toque la notificación "portal cautivo". Verifique que se establezca una conexión de red restringida para permitir que el usuario agregue créditos.
  14. Verifique que la recarga o reactivación del saldo de la tarjeta SIM provoque que el tráfico de la red celular se recupere y que desaparezcan 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 (ver tests/runtest.sh ). Cuando implementa una versión o un comportamiento personalizado, debe reflejar esas personalizaciones en pruebas unitarias dedicadas.