Pruebas 5G

Para dispositivos que ejecutan Android 11 o superior, Android Comms Test Suite (ACTS) admite casos de uso básicos de 5G NSA para entornos de uno o varios dispositivos. Esta página cubre cómo ACTS detecta y garantiza que un dispositivo esté conectado a una red 5G NSA y le brinda una descripción general de la estructura de la ruta de prueba

Detección

Desde Android 11, el marco de trabajo de Android incluye API para detectar 5G. Para obtener más detalles, consulte Detección 5G .

Scripting Layer para Android (SL4A) admite la detección de 5G escuchando eventos LISTEN_DISPLAY_INFO_CHANGED de PhoneStateListener y anulando el método onDisplayInfoChanged() . SL4A utiliza los siguientes valores para distinguir entre los tipos de conexión NSA (no independiente), mmWave (onda milimétrica) y SA (independiente) para 5G:

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

TelephonyDisplayInfo.getNetworkType() = LTE

TelephonyDisplayInfo.getOverrideNetworkType() = NR_NSA

5G de onda milimétrica TelephonyDisplayInfo.getOverrideNetworkType() = NR_MMWAVE
5G SA TelephonyManager.getDataNetworkType() = NR

TelephonyDisplayInfo.getNetworkType() = NR

Las pruebas 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 (1400+) en ACTS son parte del directorio tel . Las pruebas 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 por radio (RAT) 5G, las pruebas 5G están separadas de 4G, 3G, 2G y 1x para entornos de red en vivo para permitir que las pruebas ACTS sean escalables e independientes.

A continuación, se describen las clases de prueba para las pruebas 5G.

  • Nsa5gActivationTest : verifica si un solo dispositivo se conecta correctamente a 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 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 el anclaje de Wi-Fi a través de un dispositivo conectado a 5G NSA.

    test_5g_nsa_tethering_to_5gwifi test_5g_nsa_tethering_to_2gwifi
    

Salida de prueba de muestra

Para confirmar que un dispositivo está en 5G NSA, verifique 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 evaluar la respuesta de la API sin ejecutar una prueba ACTS durante la falla, use 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}