بالنسبة إلى الأجهزة التي تعمل بالإصدار 11 من Android أو الإصدارات الأحدث، توفّر مجموعة اختبارات الاتصالات في Android (ACTS) حالات استخدام أساسية لشبكة الجيل الخامس (5G) غير المستندة إلى شبكة الجوّال الأساسية في البيئات التي تتضمّن جهازًا واحدًا أو عدة أجهزة. تتناول هذه الصفحة كيفية رصد اختبار ACTS لجهاز متصل بشبكة 5G NSA والتأكّد من ذلك، كما تقدّم إليك اطّلاعًا مختصَرًا على بنية مسار الاختبار.
رصد
بدءًا من Android 11، يتضمّن إطار عمل Android واجهات برمجة تطبيقات لرصد شبكة الجيل الخامس. لمزيد من التفاصيل، يُرجى الاطّلاع على رصد شبكة الجيل الخامس.
تتوافق "طبقة البرمجة النصية" (SL4A) مع ميزة "رصد شبكة الجيل الخامس" من خلال الاستماع إلى أحداث LISTEN_DISPLAY_INFO_CHANGED
من PhoneStateListener
وإلغاء طريقة onDisplayInfoChanged()
. يستخدم SL4A القيم التالية للتمييز بين أنواع الاتصال بشبكة
الجيل الخامس (5G) التي تستخدم تقنية NSA (غير مستقلة) وتقنية mmWave (موجات الملليمتر) وتقنية SA (مستقلة):
نوع الاتصال | القيم |
---|---|
شبكة NSA لشبكة الجيل الخامس | TechnicalManager.getDataNetworkType() = LTE |
شبكة 5G mmWave | TelephonyDisplayInfo.getOverrideNetworkType() = NR_MMWAVE |
شبكة الجيل الخامس في المملكة العربية السعودية | TelephonyManager.getDataNetworkType() = NR |
تستخدِم اختبارات ACTS الطريقة
is_current_network_5g_nsa()
لضمان اتصال الجهاز بشبكة 5G غير المستندة إلى الشبكة الأساسية.
مسارات الاختبار وبنية الاختبار
جميع اختبارات الهاتف (أكثر من 1400 اختبار) في ACTS هي جزء من
tel
directory.
يمكنك العثور على اختبارات شبكة الجيل الخامس في
دليل tools/test/connectivity/acts\_tests/tests/google/nr/
(يشير الاختصار nr إلى الراديو الجديد). مع طرح تكنولوجيا الوصول إلى الشبكة الراديوية (RAT) لشبكة الجيل الخامس، أصبحت اختبارات شبكة الجيل الخامس منفصلة عن اختبارات شبكات الجيل الرابع والثالث والثاني و1x لبيئة الشبكة المباشرة، وذلك للسماح بتوسيع نطاق اختبارات ACTS وجعلها مستقلة.
يوضّح ما يلي فئات الاختبار لاختبارات الجيل الخامس.
Nsa5gActivationTest
: تحقّق من ما إذا كان جهاز واحد يتصل بشكل صحيح بشبكة الجيل الخامس غير المستندة إلى البنية الأساسية (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
: التحقّق من إرسال وتلقّي الرسائل القصيرة بين أجهزة متعددة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
: يتم التحقّق من ميزة "التوصيل عبر Wi-Fi" عبر جهاز متصل بـ NSA من شبكة الجيل الخامس.test_5g_nsa_tethering_to_5gwifi test_5g_nsa_tethering_to_2gwifi
نموذج لنتائج الاختبار
للتأكّد من أنّ الجهاز متصل بشبكة الجيل الخامس غير المزوّدة بإمكانية الوصول إلى الخدمات الجوّالة (NSA)، ابحث عن رسائل السجلّ التالية فيملف logcat.txt في directory/var/log/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]
تحديد المشاكل وحلّها
لفرز استجابة واجهة برمجة التطبيقات بدون تشغيل اختبار 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}