对于运行 Android 11 或更高版本的设备, Android Comms Test Suite (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 SA | TelephonyManager.getDataNetworkType() = NR |
ACTS 测试使用is_current_network_5g_nsa()
方法来确保设备连接到 5G NSA 网络
测试路径和测试结构
ACTS 中的所有电话测试 (1400+) 都是tel
directory的一部分。 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
:验证在多个设备之间发送和接收 MMS 消息。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}