Test 5G

Per i dispositivi con Android 11 o versioni successive, Android Comms Test Suite (ACTS) supporta i casi d'uso principali del 5G NSA per ambienti singoli e multi-dispositivo. Questa pagina spiega come ACTS rileva e garantisce che un dispositivo sia connesso a una rete 5G NSA e offre una panoramica della struttura del percorso di test

Rilevamento

A partire da Android 11, il framework Android include API per rilevare il 5G. Per ulteriori dettagli, vedere Rilevamento 5G .

Scripting Layer For Android (SL4A) supporta il rilevamento 5G ascoltando gli eventi LISTEN_DISPLAY_INFO_CHANGED da PhoneStateListener e sovrascrivendo il metodo onDisplayInfoChanged() . SL4A utilizza i seguenti valori per distinguere tra i tipi di connessione NSA (non autonomo), mmWave (onda millimetrica) e SA (autonomo) per 5G:

Tipo di connessione Valori
5G NSA TelephonyManager.getDataNetworkType() = LTE

TelephonyDisplayInfo.getNetworkType() = LTE

TelephonyDisplayInfo.getOverrideNetworkType() = NR_NSA

Onda mm 5G TelephonyDisplayInfo.getOverrideNetworkType() = NR_MMWAVE
5GSA TelephonyManager.getDataNetworkType() = NR

TelephonyDisplayInfo.getNetworkType() = NR

I test ACTS utilizzano il metodo is_current_network_5g_nsa() per garantire che il dispositivo sia connesso a una rete 5G NSA

Percorsi di test e struttura dei test

Tutti i test di telefonia (1400+) in ACTS fanno parte dell'elenco tel . I test 5G si trovano nella directory tools/test/connectivity/acts\_tests/tests/google/nr/ (nr sta per nuova radio). Con l'introduzione della tecnologia di accesso radio 5G (RAT), i test 5G sono separati da 4G, 3G, 2G e 1x per gli ambienti di rete live per consentire ai test ACTS di essere scalabili e indipendenti.

Di seguito vengono descritte le classi di test per i test 5G.

  • Nsa5gActivationTest : Verifica se un singolo dispositivo si connette correttamente al 5G NSA da vari stati.

    test_5g_nsa_activation_from_apm test_5g_nsa_activation_from_reboot
    test_5g_nsa_activation_from_3g
    
  • Nsa5gVoiceTest : verifica la funzionalità di chiamata vocale tra più dispositivi.

    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 funzionalità dei dati come navigazione, stallo dei dati e misurazione.

    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 l'invio e la ricezione di messaggi SMS tra più dispositivi.

    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 l'invio e la ricezione di messaggi MMS tra più dispositivi.

    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 il tethering Wi-Fi su un dispositivo connesso a 5G NSA.

    test_5g_nsa_tethering_to_5gwifi test_5g_nsa_tethering_to_2gwifi
    

Esempio di output del test

Per confermare che un dispositivo sia su 5G NSA, controlla i seguenti messaggi di registro in 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]

Risoluzione dei problemi

Per valutare la risposta API senza eseguire un test ACTS in caso di errore, utilizzare i seguenti comandi:

>> 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}