สำหรับอุปกรณ์ที่ใช้ Android 11 ขึ้นไป ชุดทดสอบการสื่อสารของ Android (ACTS) จะรองรับกรณีการใช้งานหลักของ 5G NSA สำหรับสภาพแวดล้อมแบบอุปกรณ์เดียวและหลายอุปกรณ์ หน้านี้กล่าวถึงวิธีที่ ACTS ตรวจหาและตรวจสอบว่าอุปกรณ์เชื่อมต่อกับเครือข่าย 5G NSA และแสดงภาพรวมของโครงสร้างเส้นทางทดสอบ
การตรวจจับ
ตั้งแต่ Android 11 เฟรมเวิร์ก Android มี API เพื่อตรวจหา 5G ดูรายละเอียดเพิ่มเติมได้ที่การตรวจจับ 5G
Scripting Layer For Android (SL4A) รองรับการตรวจจับ 5G โดยการฟังเหตุการณ์ LISTEN_DISPLAY_INFO_CHANGED
จาก PhoneStateListener
และลบล้างเมธอด onDisplayInfoChanged()
SL4A ใช้ค่าต่อไปนี้เพื่อแยกความแตกต่างระหว่างประเภทการเชื่อมต่อ NSA (ไม่สแตนด์อโลน), mmWave (คลื่นมิลลิเมตร) และ SA (สแตนด์อโลน) สำหรับ 5G
ประเภทการเชื่อมต่อ | ค่า |
---|---|
5G NSA | TelephonyManager.getDataNetworkType() = LTE |
5G mmWave | TelephonyDisplayInfo.getOverrideNetworkType() = NR_MMWAVE |
5G SA | TelephonyManager.getDataNetworkType() = NR |
การทดสอบ ACTS ใช้วิธีการ is_current_network_5g_nsa()
เพื่อตรวจสอบว่าอุปกรณ์เชื่อมต่อกับเครือข่าย 5G NSA
เส้นทางทดสอบและโครงสร้างการทดสอบ
การทดสอบทางโทรศัพท์ทั้งหมด (1,400+) ใน ACTS เป็นส่วนหนึ่งของไดเรกทอรี tel
การทดสอบ 5G จะอยู่ในไดเรกทอรี tools/test/connectivity/acts\_tests/tests/google/nr/
(nr ย่อมาจาก New Radio) เมื่อเปิดตัวเทคโนโลยีการเข้าถึงระบบเครือข่ายไร้สาย (RAT) 5G การทดสอบ 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
: ยืนยันการเชื่อมต่ออินเทอร์เน็ตผ่าน Wi-Fi ผ่านอุปกรณ์ที่เชื่อมต่อกับ 5G NSAtest_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}