Pruebas de 5G

En el caso de los dispositivos que ejecutan Android 11 o versiones posteriores, el Conjunto de pruebas de comunicaciones (ACTS) de Android admite casos de uso principales de la 5G NSA para entornos de uno o varios dispositivos. En esta página, se explica cómo el ACTS detecta y garantiza que un dispositivo esté conectado a una red 5G NSA, y se proporciona una descripción general de la estructura de la ruta de acceso de la 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 escuchando eventos LISTEN_DISPLAY_INFO_CHANGED de PhoneStateListener y anulando el método onDisplayInfoChanged(). SL4A usa los siguientes valores para distinguir entre los tipos de conexión NSA (no independiente), mmWave (ondas milimétricas) y SA (independiente) para 5G:

Tipo de conexión Valores
5G NSA TelephonyManager.getDataNetworkType() = LTE

TelephonyDisplayInfo.getNetworkType() = LTE

TelephonyDisplayInfo.getOverrideNetworkType() = NR_NSA

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

TelephonyDisplayInfo.getNetworkType() = 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 acceso y estructura de pruebas

Todas las pruebas de telefonía (más de 1,400) de 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 nueva radio). Con la introducción de la tecnología de acceso de radio de 5G (RAT), las pruebas de 5G son independientes de 4G, 3G, 2G y 1x para entornos de red en vivo a fin de permitir que las pruebas de ACTS sean independientes y escalables.

A continuación, se describen las clases de prueba para pruebas 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 función de 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, el bloqueo 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 mediante Wi-Fi a través de un dispositivo conectado a la 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 la 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}