En dispositivos que ejecutan Android 11 o versiones posteriores, el Android Comms Test Suite (ACTS) admite casos de uso principales de 5G NSA para entornos de un solo dispositivo y de varios dispositivos. En esta página, se explica cómo ACTS detecta y garantiza que un dispositivo esté conectado a una red NSA 5G y te brinda una descripción general de la estructura de la ruta de prueba.
Detección
A partir de Android 11, el framework de Android incluye APIs para detectar 5G. Para obtener más detalles, consulta Detección de 5G.
La capa de secuencias de comandos para Android (SL4A) admite la detección de 5G a través de la detección de eventos LISTEN_DISPLAY_INFO_CHANGED
desde PhoneStateListener
y anula el método onDisplayInfoChanged()
. SL4A usa los siguientes valores para distinguir entre los tipos de conexión NSA (no autónoma), mmWave (onda milimétrica) y SA (autónoma) para 5G:
Tipo de conexión | Valores |
---|---|
5G NSA | TelephonyManager.getDataNetworkType() = LTE |
5G mmWave | TelephonyDisplayInfo.getOverrideNetworkType() = NR_MMWAVE |
5G SA | TelephonyManager.getDataNetworkType() = NR |
Las pruebas de ACTS usan el método is_current_network_5g_nsa()
para garantizar que el dispositivo esté conectado a una red 5G NSA.
Rutas de prueba y estructura de prueba
Todas las pruebas de telefonía (más de 1,400) en ACTS forman parte del directorio tel
.
Las pruebas de 5G se encuentran en el directorio tools/test/connectivity/acts\_tests/tests/google/nr/
(nr significa radio nueva). Con la introducción de la tecnología de acceso por radio (RAT) 5G, las pruebas 5G se separan de las de 4G, 3G, 2G y 1x para entornos de red en vivo, lo que permite que las pruebas de ACTS sean escalables e independientes.
A continuación, se describen las clases de prueba para las pruebas de 5G.
Nsa5gActivationTest
: Verifica si un solo dispositivo se conecta correctamente a la 5G NSA desde varios estados.test_5g_nsa_activation_from_apm test_5g_nsa_activation_from_reboot test_5g_nsa_activation_from_3g
Nsa5gVoiceTest
: Verifica la funcionalidad de las llamadas de voz entre varios 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 la funcionalidad de los datos, como la navegación, la detención de datos y la medición.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 el envío y la recepción de mensajes SMS entre varios 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 el envío y la recepción de mensajes MMS entre varios 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 la conexión compartida por Wi-Fi en un dispositivo conectado a 5G NSA.test_5g_nsa_tethering_to_5gwifi test_5g_nsa_tethering_to_2gwifi
Resultado de la prueba de muestra
Para confirmar que un dispositivo utiliza la NSA 5G, busca los siguientes mensajes de registro en 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]
Solución de problemas
Para clasificar la respuesta de la API sin ejecutar una prueba de ACTS durante una falla, usa los siguientes 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}