Test del 5G

Per i dispositivi con Android 11 o versioni successive, la suite di test Android Comms Test Suite (ACTS) supporta i principali casi d'uso 5G NSA per ambienti con uno o più dispositivi. Questa pagina illustra come ACTS rileva e garantisce che un dispositivo sia connesso a una rete NSA 5G e offre una panoramica della struttura dei percorsi di test.

Rilevamento

A partire da Android 11, il framework di Android include API per rilevare il 5G. Per maggiori dettagli, vedi Rilevamento 5G.

Scripting Layer per Android (SL4A) supporta il rilevamento 5G mediante l'ascolto degli eventi LISTEN_DISPLAY_INFO_CHANGED da PhoneStateListener e l'override del metodo onDisplayInfoChanged(). SL4A utilizza i seguenti valori per distinguere i tipi di connessione NSA (non standalone), mmWave (onda millimetrica) e SA (standalone) per il 5G:

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

TelephonyDisplayInfo.getNetworkType() = LTE

TelephonyDisplayInfo.getOverrideNetworkType() = NR_NSA

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

TelephonyDisplayInfo.getNetworkType() = NR

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

Percorsi e struttura dei test

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

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

  • Nsa5gActivationTest: Verifica se un singolo dispositivo si connette correttamente alla rete 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 la navigazione, il blocco dei dati e la 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 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 NSA 5G.

    test_5g_nsa_tethering_to_5gwifi test_5g_nsa_tethering_to_2gwifi
    

Esempio di output di test

Per verificare se un dispositivo utilizza la rete 5G NSA, controlla i seguenti messaggi di log 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 classificare la risposta dell'API senza eseguire un test ACTS durante l'errore, utilizza 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}