對於運行 Android 11 或更高版本的設備, Android 通訊測試套件 (ACTS)支援單設備和多設備環境的核心5G NSA使用案例。本頁面介紹了 ACTS 如何偵測並確保裝置連接到 5G NSA 網絡,並為您提供測試路徑結構的概述
偵測
從 Android 11 開始,Android 框架包含用於偵測 5G 的 API。更多詳情請參閱5G檢測。
Android 腳本層 (SL4A) 透過偵聽來自PhoneStateListener
的LISTEN_DISPLAY_INFO_CHANGED
事件並重寫onDisplayInfoChanged()
方法來支援 5G 偵測。 SL4A 使用以下值來區分 5G 的 NSA(非獨立)、mmWave(毫米波)和 SA(獨立)連接類型:
連接類型 | 價值觀 |
---|---|
5G 非獨立組網 | TelephonyManager.getDataNetworkType() = LTE |
5G毫米波 | TelephonyDisplayInfo.getOverrideNetworkType() = NR_MMWAVE |
5G獨立組網 | TelephonyManager.getDataNetworkType() = NR |
ACTS 測試使用is_current_network_5g_nsa()
方法來確保裝置連接到 5G NSA 網路
測試路徑和測試結構
ACTS 中的所有電話測試(1400+)都是tel
目錄的一部分。 5G 測試位於tools/test/connectivity/acts\_tests/tests/google/nr/
目錄中(nr 代表新無線電)。隨著5G無線接取技術(RAT)的引入,5G測試與4G、3G、2G和1x的現網環境分開,使ACTS測試具有可擴展性和獨立性。
以下介紹5G測試的測試類別。
Nsa5gActivationTest
:驗證單一裝置是否從各種狀態正確連接到 5G NSA。test_5g_nsa_activation_from_apm test_5g_nsa_activation_from_reboot test_5g_nsa_activation_from_3g
Nsa5gVoiceTest
:驗證多個裝置之間的語音通話功能。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
:驗證資料功能,例如瀏覽、資料停頓和計量。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
:驗證多個裝置之間 SMS 訊息的傳送和接收。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
:驗證在多個裝置之間發送和接收彩信。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
:驗證連接到 5G NSA 的裝置上的 Wi-Fi 網路共用。test_5g_nsa_tethering_to_5gwifi test_5g_nsa_tethering_to_2gwifi
測試輸出範例
若要確認裝置是否使用 5G NSA,請檢查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]
故障排除
若要在失敗期間對 API 回應進行分類而不執行 ACTS 測試,請使用下列命令:
>> 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}