Personalizando o comportamento do dispositivo para usuários desequilibrados,Personalizando o comportamento do dispositivo para usuários desequilibrados

Dispositivos Android sem equilíbrio de dados permitem o tráfego de rede, exigindo que operadoras e telcos implementem protocolos de mitigação. O Android implementa uma solução genérica que permite que operadoras e telcos indiquem quando um dispositivo ficou sem equilíbrio.

A plataforma Android fornece um aplicativo de operadora padrão com um comportamento padrão para mitigação de tráfego com base no sinal de detecção do portal cativo. Também oferece às operadoras e OEMs a oportunidade de personalizar o comportamento com baixo custo e grande flexibilidade.

Exemplos e fonte

O aplicativo da operadora padrão está localizado em platform/frameworks/base/packages/CarrierDefaultApp/ .

Implementação

O aplicativo de operadora padrão está configurado para fornecer uma experiência melhor para operadoras não configuradas prontas para uso. As operadoras podem usar esse comportamento padrão. Eles também podem substituir o comportamento padrão adicionando mapeamentos de ação de sinal ao arquivo XML de configuração da operadora. Eles podem decidir não usar o aplicativo padrão e, em vez disso, usar os privilégios UICC com seu próprio aplicativo de operadora independente.

Introdução à implementação

Sinais

A estrutura do Android é compatível com a configuração de ações para os seguintes sinais parametrizados:

  • TelephonyIntents.ACTION_CARRIER_SIGNAL_REDIRECTED
  • TelephonyIntents.ACTION_CARRIER_SIGNAL_REQUEST_NETWORK_FAILED

Esses sinais estão localizados em frameworks/base/telephony/java/com/android/internal/telephony/TelephonyIntents.java .

Ações compatíveis

O aplicativo da operadora padrão define um conjunto de ações compatíveis que podem ser mapeadas para sinais compatíveis. Eles são definidos em 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;

Observação: se uma operadora implementar seu próprio aplicativo autônomo, ela poderá implementar suporte para sinais diferentes dos mencionados nesta seção. Eles também podem definir e configurar suas próprias ações.

Mapeamentos de ação de sinal padrão

Configure as ações padrão seguindo este processo:

  1. Defina uma chave para sinais suportados.

    Os mapeamentos de sinal para ação padrão são definidos em CarrierConfigManager.java . Cada um dos sinais suportados tem uma chave:

    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. Associe ações padrão para sinalizar chaves.

    Os IDs de ação padrão estão associados às chaves de sinal:

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

    A estrutura de telefonia mapeia essas ações para os sinais correspondentes.

Substituindo ações padrão

Você pode definir ações personalizadas para sinais suportados no arquivo XML de configuração de operadora associando IDs de ação às chaves de sinal (definidas em CarrierConfigManager.java ). Por exemplo, o mapeamento a seguir desabilita APNs medidos e mostra uma notificação do portal no redirecionamento:

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

A estrutura de telefonia carrega essas configurações e substitui as ações padrão.

Validação

Não há testes CTS, CTS Verifier ou GTS para este recurso.

Use estes testes de validação manual para validar o recurso:

  1. Valide a notificação de sinal de desbalanceamento do dispositivo da telco.
  2. Verifique a limitação do redirecionamento de tráfego durante o estado desequilibrado e o Wi-Fi desligado.
  3. Verifique se o tráfego de rede está desativado e a IU de notificação aparece durante o estado de desequilíbrio.
  4. Valide a função de chamada de voz/VoLTE durante o estado de desequilíbrio.
  5. Verifique se as chamadas de vídeo estão bloqueadas no estado desbalanceado.
  6. Com o Wi-Fi ativado, verifique se o usuário pode continuar navegando na Web e se o tráfego de navegação não ativa o tráfego de rede enquanto estiver no estado desequilibrado.
  7. Valide as funções Wi-Fi, WFC e Bluetooth durante o estado de desequilíbrio.
  8. Desligue o Wi-Fi. Verifique a IU de notificação desequilibrada e se o tráfego de navegação comum não é redirecionado para o site de registro da telco. Verifique se clicar no link na interface do usuário de notificação leva o navegador ao site de registro da telco.
  9. Verifique se alternar o modo avião não redefine o estado de limitação de tráfego.
  10. Verifique se a troca de um SIM em serviço redefine o estado do tráfego de rede.
  11. Verifique se a reinserção do SIM desequilibrado reinicia o redirecionamento de tráfego e obtém novamente a limitação do tráfego de rede.
  12. Verifique se a reinicialização do telefone reativa o redirecionamento e traz de volta o acelerador de tráfego e a interface do usuário de notificação.
  13. Toque na notificação "captiveportal". Verifique se uma conexão de rede restrita foi estabelecida para permitir que o usuário adicione créditos.
  14. Verifique se a recarga ou reativação do saldo do SIM faz com que o tráfego da rede celular se recupere e que o link Telco e a notificação sem saldo desapareçam.
  15. Teste de sanidade após a recuperação do serviço de dados.

O aplicativo padrão fornece alguns exemplos de testes de unidade e um script para executá-los (consulte tests/runtest.sh ). Ao implementar uma versão ou comportamento personalizado, você deve espelhar essas personalizações em testes de unidade dedicados.

,

Dispositivos Android sem equilíbrio de dados permitem o tráfego de rede, exigindo que operadoras e telcos implementem protocolos de mitigação. O Android implementa uma solução genérica que permite que operadoras e telcos indiquem quando um dispositivo ficou sem equilíbrio.

A plataforma Android fornece um aplicativo de operadora padrão com um comportamento padrão para mitigação de tráfego com base no sinal de detecção do portal cativo. Também oferece às operadoras e OEMs a oportunidade de personalizar o comportamento com baixo custo e grande flexibilidade.

Exemplos e fonte

O aplicativo da operadora padrão está localizado em platform/frameworks/base/packages/CarrierDefaultApp/ .

Implementação

O aplicativo de operadora padrão está configurado para fornecer uma experiência melhor para operadoras não configuradas prontas para uso. As operadoras podem usar esse comportamento padrão. Eles também podem substituir o comportamento padrão adicionando mapeamentos de ação de sinal ao arquivo XML de configuração da operadora. Eles podem decidir não usar o aplicativo padrão e, em vez disso, usar os privilégios UICC com seu próprio aplicativo de operadora independente.

Introdução à implementação

Sinais

A estrutura do Android é compatível com a configuração de ações para os seguintes sinais parametrizados:

  • TelephonyIntents.ACTION_CARRIER_SIGNAL_REDIRECTED
  • TelephonyIntents.ACTION_CARRIER_SIGNAL_REQUEST_NETWORK_FAILED

Esses sinais estão localizados em frameworks/base/telephony/java/com/android/internal/telephony/TelephonyIntents.java .

Ações compatíveis

O aplicativo da operadora padrão define um conjunto de ações compatíveis que podem ser mapeadas para sinais compatíveis. Eles são definidos em 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;

Observação: se uma operadora implementar seu próprio aplicativo autônomo, ela poderá implementar suporte para sinais diferentes dos mencionados nesta seção. Eles também podem definir e configurar suas próprias ações.

Mapeamentos de ação de sinal padrão

Configure as ações padrão seguindo este processo:

  1. Defina uma chave para sinais suportados.

    Os mapeamentos de sinal para ação padrão são definidos em CarrierConfigManager.java . Cada um dos sinais suportados tem uma chave:

    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. Associe ações padrão para sinalizar chaves.

    Os IDs de ação padrão estão associados às chaves de sinal:

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

    A estrutura de telefonia mapeia essas ações para os sinais correspondentes.

Substituindo ações padrão

Você pode definir ações personalizadas para sinais suportados no arquivo XML de configuração de operadora associando IDs de ação às chaves de sinal (definidas em CarrierConfigManager.java ). Por exemplo, o mapeamento a seguir desabilita APNs medidos e mostra uma notificação do portal no redirecionamento:

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

A estrutura de telefonia carrega essas configurações e substitui as ações padrão.

Validação

Não há testes CTS, CTS Verifier ou GTS para este recurso.

Use estes testes de validação manual para validar o recurso:

  1. Valide a notificação de sinal de desbalanceamento do dispositivo da telco.
  2. Verifique a limitação do redirecionamento de tráfego durante o estado desequilibrado e o Wi-Fi desligado.
  3. Verifique se o tráfego de rede está desativado e a IU de notificação aparece durante o estado de desequilíbrio.
  4. Valide a função de chamada de voz/VoLTE durante o estado de desequilíbrio.
  5. Verifique se as chamadas de vídeo estão bloqueadas no estado desbalanceado.
  6. Com o Wi-Fi ativado, verifique se o usuário pode continuar navegando na Web e se o tráfego de navegação não ativa o tráfego de rede enquanto estiver no estado desequilibrado.
  7. Valide as funções Wi-Fi, WFC e Bluetooth durante o estado de desequilíbrio.
  8. Desligue o Wi-Fi. Verifique a IU de notificação desequilibrada e se o tráfego de navegação comum não é redirecionado para o site de registro da telco. Verifique se clicar no link na interface do usuário de notificação leva o navegador ao site de registro da telco.
  9. Verifique se alternar o modo avião não redefine o estado de limitação de tráfego.
  10. Verifique se a troca de um SIM em serviço redefine o estado do tráfego de rede.
  11. Verifique se a reinserção do SIM desequilibrado reinicia o redirecionamento de tráfego e obtém novamente a limitação do tráfego de rede.
  12. Verifique se a reinicialização do telefone reativa o redirecionamento e traz de volta o acelerador de tráfego e a interface do usuário de notificação.
  13. Toque na notificação "captiveportal". Verifique se uma conexão de rede restrita foi estabelecida para permitir que o usuário adicione créditos.
  14. Verifique se a recarga ou reativação do saldo do SIM faz com que o tráfego da rede celular se recupere e que o link Telco e a notificação sem saldo desapareçam.
  15. Teste de sanidade após a recuperação do serviço de dados.

O aplicativo padrão fornece alguns exemplos de testes de unidade e um script para executá-los (consulte tests/runtest.sh ). Ao implementar uma versão ou comportamento personalizado, você deve espelhar essas personalizações em testes de unidade dedicados.