Teste 5G

Para dispositivos com Android 11 ou superior, o Android Comms Test Suite (ACTS) oferece suporte aos principais casos de uso 5G NSA para ambientes de dispositivos únicos e múltiplos. Esta página aborda como o ACTS detecta e garante que um dispositivo esteja conectado a uma rede 5G NSA e fornece uma visão geral da estrutura do caminho de teste

Detecção

A partir do Android 11, a estrutura do Android inclui APIs para detectar 5G. Para obter mais detalhes, consulte Detecção de 5G .

Scripting Layer For Android (SL4A) suporta detecção 5G ouvindo eventos LISTEN_DISPLAY_INFO_CHANGED de PhoneStateListener e substituindo o método onDisplayInfoChanged() . SL4A usa os seguintes valores para distinguir entre os tipos de conexão NSA (não autônoma), mmWave (onda milimétrica) e SA (autônoma) para 5G:

Tipo de conexão Valores
5G NSA TelephonyManager.getDataNetworkType() = LTE

TelephonyDisplayInfo.getNetworkType() = LTE

TelephonyDisplayInfo.getOverrideNetworkType() = NR_NSA

5G mmOnda TelephonyDisplayInfo.getOverrideNetworkType() = NR_MMWAVE
5G SA TelephonyManager.getDataNetworkType() = NR

TelephonyDisplayInfo.getNetworkType() = NR

Os testes ACTS usam o método is_current_network_5g_nsa() para garantir que o dispositivo esteja conectado a uma rede 5G NSA

Caminhos de teste e estrutura de teste

Todos os testes de telefonia (1400+) no ACTS fazem parte do diretório tel . Os testes 5G estão localizados no diretório tools/test/connectivity/acts\_tests/tests/google/nr/ (nr significa novo rádio). Com a introdução da tecnologia de acesso de rádio (RAT) 5G, os testes 5G são separados de 4G, 3G, 2G e 1x para ambientes de rede ativos para permitir que os testes ACTS sejam escaláveis ​​e independentes.

A seguir descrevemos classes de teste para testes 5G.

  • Nsa5gActivationTest : verifica se um único dispositivo se conecta corretamente ao 5G NSA de vários estados.

    test_5g_nsa_activation_from_apm test_5g_nsa_activation_from_reboot
    test_5g_nsa_activation_from_3g
    
  • Nsa5gVoiceTest : verifica a funcionalidade de chamada de voz entre vários dispositivos.

    test_5g_nsa_call_volte_to_volte test_5g_nsa_call_volte_to_3g
    test_5g_nsa_call_volte_mo_hold_unhold
    test_5g_nsa_call_mo_volte_in_active_data_transfer
    test_5g_nsa_volte_in_call_wifi_toggling
    
  • Nsa5gDataTest : verifica a funcionalidade dos dados, como navegação, bloqueio de dados e medição.

    test_5g_nsa_data_browsing test_5g_nsa_data_stall_recovery
    test_5g_nsa_metered_cellular test_5g_nsa_metered_airplane
    test_5g_nsa_metered_wifi
    
  • Nsa5gSmsTest : verifica o envio e recebimento de mensagens SMS entre vários dispositivos.

    test_5g_nsa_sms_mo_mt test_5g_nsa_sms_mo_mt_volte
    test_5g_nsa_sms_mo_mt_in_call_volte test_5g_nsa_sms_mo_mt_iwlan
    test_5g_nsa_sms_mo_mt_in_call_iwlan
    
  • Nsa5gMmsTest : verifica o envio e recebimento de mensagens MMS entre vários dispositivos.

    test_5g_nsa_mms_mo_mt test_5g_nsa_mms_mo_mt_in_call_volte
    test_5g_nsa_mms_mo_mt_iwlan_apm_off test_5g_nsa_mms_mo_mt_in_call_iwlan
    test_5g_nsa_mms_mo_mt_in_call_volte_wifi
    
  • Nsa5gTetheringTest : verifica o tethering de Wi-Fi em um dispositivo conectado ao 5G NSA.

    test_5g_nsa_tethering_to_5gwifi test_5g_nsa_tethering_to_2gwifi
    

Exemplo de saída de teste

Para confirmar se um dispositivo está em 5G NSA, verifique as seguintes mensagens de log em test_run_info.txt .

INFO [AndroidDevice|<SERIAL_ID>] Current ModePref for Sub 2 is in
NETWORK_MODE_NR_LTE_GSM_WCDMA [tel_test_utils.py:set_preferred_network_mode_pref:7634]
INFO [AndroidDevice|<SERIAL_ID>] Got expected event {'name': 'DisplayInfoChanged',
'data': {'override': 'NR_NSA', 'network': 'LTE', 'subscriptionId': 2147483647},
'time': 1611094526689} [tel_5g_utils.py:is_current_network_5g_nsa:58]

Solução de problemas

Para fazer a triagem da resposta da API sem executar um teste ACTS durante a falha, use os seguintes comandos:

>> python3
>> from acts.controllers.android_device import AndroidDevice; ad = AndroidDevice('<SERIAL_ID>'); a, b = ad.get_droid()
>> a.telephonyStartTrackingDisplayInfoChange()
>> b.start()
>> b.wait_for_event("DisplayInfoChanged", lambda _: True, timeout=30)

{'name': 'DisplayInfoChanged', 'data': 'TelephonyDisplayInfo {network=LTE, override=LTE_CA, 'time': 1586483596907}