Personaliza el comportamiento del dispositivo para usuarios sin saldo

Los dispositivos Android sin saldo de datos permiten el tráfico de red, por lo que proveedores y telecomunicaciones para implementar protocolos de mitigación. Android implementa un una solución genérica que permite a los operadores y las empresas de telecomunicaciones indicar cuándo un dispositivo tiene se quedó sin saldo.

La plataforma de Android proporciona una app de operador predeterminada con un comportamiento predeterminado para mitigación de tráfico basada en la señal de detección del portal cautivo. También proporciona a las empresas y los OEM la oportunidad de personalizar su comportamiento a un bajo costo gran flexibilidad.

Ejemplos y fuente

La app del operador predeterminada se encuentra en platform/frameworks/base/packages/CarrierDefaultApp/..

Implementación

Se configuró la app del operador predeterminada para brindar una mejor experiencia proveedores no configurados desde el primer momento. Los operadores pueden usar este comportamiento predeterminado. También pueden anular el comportamiento predeterminado agregando asignaciones de acciones de indicadores a el archivo XML de configuración del proveedor. Pueden decidir no usar la aplicación predeterminada y en su lugar, usen privilegios UICC con su propia app de operador independiente.

Introducción a la implementación

Signals

El framework de Android admite la configuración de acciones para los siguientes indicadores:

  • TelephonyIntents.ACTION_CARRIER_SIGNAL_REDIRECTED
  • TelephonyIntents.ACTION_CARRIER_SIGNAL_REQUEST_NETWORK_FAILED

Estos indicadores se encuentran frameworks/base/telephony/java/com/android/internal/telephony/TelephonyIntents.java

Acciones compatibles

La app de operador predeterminada define un conjunto de acciones admitidas a las que se pueden asignar indicadores admitidos. 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 app independiente, las Pueden implementar la compatibilidad con los indicadores distintos de los mencionados en este sección. También pueden definir y configurar sus propias acciones.

Asignaciones predeterminadas de acciones de indicadores

Configura las acciones predeterminadas mediante este proceso:

  1. Define una clave para los indicadores admitidos.

    Las asignaciones predeterminadas de indicadores a acciones se definen en CarrierConfigManager.java. Cada uno de los indicadores admitidos 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. Asocia las acciones predeterminadas a las teclas de indicadores.

    Los IDs de acción predeterminados están asociados con las claves de indicadores:

    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 framework de telefonía asigna estas acciones a las señales correspondientes.

Cómo anular acciones predeterminadas

Puedes definir acciones personalizadas para los indicadores admitidos en el archivo XML de configuración del proveedor. mediante la asociación de los IDs de acción a las claves de indicadores (definidas en CarrierConfigManager.java). Por ejemplo, la siguiente asignación inhabilita los APN medidos y muestra una notificación del portal durante el redireccionamiento:

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

El framework de telefonía carga estos parámetros de configuración y anula los valores predeterminados. acciones.

Validación

No hay pruebas de CTS, Verificador del CTS ni GTS para esta función.

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

  1. Validar la notificación de la señal de desbalance de dispositivos de la empresa de telecomunicaciones
  2. Verifica la limitación del redireccionamiento del tráfico durante el estado de desequilibrio y la conexión Wi-Fi desactivado.
  3. Verifica que el tráfico de red esté apagado y que la IU de notificaciones aparezca durante la salida del estado del saldo.
  4. Valida la función de llamada de voz o VoLTE durante el estado de desequilibrio.
  5. Verifica que las videollamadas estén bloqueadas cuando el estado no esté desbalanceado.
  6. Con Wi-Fi activado, verifica que el usuario pueda seguir navegando el tráfico no activa el tráfico de red mientras está desbalanceado para cada estado.
  7. Valida las funciones de Wi-Fi, WFC y Bluetooth durante el desequilibrio para cada estado.
  8. Desactiva la conexión Wi-Fi. Verifica la IU de notificación de desequilibrio y esas acciones que el tráfico de navegación no se redirecciona al sitio web de registro de la empresa de telecomunicaciones. Verificar Cuando haces clic en el vínculo en la IU de notificaciones, el navegador llega a la empresa en su sitio web de registro.
  9. Verifica que al activar o desactivar el modo de avión no se restablezca la limitación del tráfico. para cada estado.
  10. Cómo verificar que intercambiar una SIM en servicio restablezca el tráfico de red para cada estado.
  11. Verifica que, si vuelves a insertar la SIM desequilibrada, se reinicie el redireccionamiento del tráfico. y obtiene nuevamente la limitación del tráfico de red.
  12. Verifica que, al reiniciar el teléfono, se reactive el redireccionamiento y se muestren regulación del tráfico y IU de notificación.
  13. Presiona el "portal cautivo". notificación. Verifica una red restringida antes de que se establezca una conexión para permitir que el usuario agregue créditos.
  14. Verifica que la reactivación o reabastecimiento del saldo de la tarjeta SIM activen la red móvil el tráfico se debe recuperar, y el vínculo de Telco y la notificación de falta de saldo de distancia.
  15. Prueba de sanidad después de la recuperación del servicio de datos

La app predeterminada proporciona algunos ejemplos de pruebas de unidades y una secuencia de comandos para ejecutarlas. (consulta tests/runtest.sh). Cuando implementas una versión personalizada deberías duplicar esas personalizaciones en pruebas de unidades dedicadas.