Pruebas 5G

Para dispositivos que ejecutan Android 11 o superior, Android Comms Test Suite (ACTS) admite casos de uso principales 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

A partir de Android 11, el marco 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 al escuchar eventos LISTEN_DISPLAY_INFO_CHANGED de PhoneStateListener y anular 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
5G NSA TelephonyManager.getDataNetworkType() = LTE

TelephonyDisplayInfo.getNetworkType() = LTE

TelephonyDisplayInfo.getOverrideNetworkType() = NR_NSA

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

TelephonyDisplayInfo.getNetworkType() = NR

Las pruebas ACTS utilizan 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 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 (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 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 múltiples 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 recepción de mensajes SMS entre múltiples 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 múltiples 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 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 clasificar la respuesta de la API sin ejecutar una prueba ACTS durante el error, utilice 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}