Para dispositivos com o Android 11 ou versões mais recentes, o Pacote de testes de comunicação do Android (ACTS, na sigla em inglês) oferece suporte aos principais casos de uso da NSA 5G para ambientes de um ou vários dispositivos. Nesta página, explicamos como o ACTS detecta e garante que um dispositivo esteja conectado a uma rede 5G da NSA e oferece uma visão geral da estrutura do caminho de teste.
Detecção
No Android 11 e versões mais recentes, o framework do Android inclui APIs para detectar 5G. Para mais detalhes, consulte Detecção de 5G.
A camada de scripting para Android (SL4A) oferece suporte à detecção 5G, detectando eventos
LISTEN_DISPLAY_INFO_CHANGED
do PhoneStateListener
e substituindo o
método
onDisplayInfoChanged()
. O SL4A usa os seguintes valores para distinguir entre os tipos de conexão NSA (não
independente), mmWave (ondas milimétricas) e SA (independente) para
5G:
Tipo de conexão | Valores |
---|---|
NSA 5G | TelephonyManager.getDataNetworkType() = LTE |
5G mmWave | TelephonyDisplayInfo.getOverrideNetworkType() = NR_MMWAVE |
SA 5G | TelephonyManager.getDataNetworkType() = 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 e estrutura do teste
Todos os testes de telefonia (mais de 1.400) 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 por rádio 5G
(RAT), os testes 5G são separados do 4G, 3G, 2G e 1x para ambientes de rede
ativos, permitindo que os testes ACTS sejam escalonáveis e independentes.
Veja a seguir as classes 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 ligação 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, armazenamento de dados e limitaçã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 o 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 o 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 à rede 5G NSA.test_5g_nsa_tethering_to_5gwifi test_5g_nsa_tethering_to_2gwifi
Exemplo de saída de teste
Para confirmar que um dispositivo está em 5G NSA, procure as seguintes mensagens de registro 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 comandos abaixo:
>> 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}