يضيف نظام التشغيل Android 11 وظائف تتيح استخدام شبكة الجيل الخامس في تطبيقاتك. يتناول هذا الموضوع الوظائف ويقدّم نظرة عامة حول كيفية تحسين تجربة المستخدم من خلال إضافة وظائف خاصة بشبكة الجيل الخامس إلى تطبيقك.
Build for 5G
عند تحديد كيفية التفاعل مع شبكة الجيل الخامس، فكِّر في أنواع التجارب التي تحاول إنشاءها. في ما يلي بعض الطرق التي يمكن أن تحسّن بها شبكة الجيل الخامس أداء تطبيقك:
- تحسين التجارب الحالية تلقائيًا من خلال زيادة السرعة وتقليل وقت الاستجابة في شبكة الجيل الخامس
- تحسين تجربة المستخدم، مثلاً من خلال عرض فيديو بدقة 4K أو تنزيل مواد عرض الألعاب بدقة أعلى
- بعد التأكّد من أنّ زيادة استخدام البيانات لن يكلّف المستخدم أي رسوم، يمكنك تضمين تجارب لا تتوفّر عادةً إلا عبر شبكة Wi-Fi، مثل تنزيل المحتوى بشكل استباقي الذي يكون متاحًا عادةً عبر شبكة Wi-Fi غير المحدودة.
- توفير تجارب فريدة على شبكة الجيل الخامس لا تعمل إلا مع السرعات العالية ووقت الاستجابة المنخفض
وظائف شبكة الجيل الخامس
يقدّم نظام التشغيل Android 11 تغييرات وتحسينات على الوظائف التالية:
التحقّق من حالة الاتصال المحدود
NET_CAPABILITY_TEMPORARILY_NOT_METERED هي ميزة تمت إضافتها في نظام التشغيل Android 11، وتخبرك ما إذا كانت الشبكة التي تستخدمها غير محدودة استنادًا إلى المعلومات التي تقدّمها شركات الاتصالات.
يتم استخدام العلامة الجديدة إلى جانب
NET_CAPABILITY_NOT_METERED.
تشير العلامة الحالية إلى ما إذا كانت الشبكة دائمًا غير محدودة، وتنطبق على كل من اتصالات Wi-Fi وشبكة الجوّال.
ويكمن الفرق بين العلامتَين في أنّ قيمة NET_CAPABILITY_TEMPORARILY_NOT_METERED قد تتغيّر بدون أن يتغيّر نوع الشبكة. يمكن للتطبيقات التي تستهدف الإصدار 11 من نظام التشغيل Android استخدام العلامة NET_CAPABILITY_TEMPORARILY_NOT_METERED. على الأجهزة التي تعمل بالإصدار 9 من نظام التشغيل Android والإصدارات الأقدم، لن يبلغ نظام التشغيل عن العلامة. بالنسبة إلى التطبيقات التي تعمل على Android 10، قد يتوفّر هذا الخيار، وذلك حسب الجهاز الذي يتم تشغيل التطبيق عليه.
بعد التأكّد من أنّ الشبكة الحالية غير محدودة مؤقتًا أو بشكل دائم، يمكنك عرض محتوى بدقة أعلى (مثل فيديو بدقة 4K)، وتحميل السجلات، وإجراء نسخ احتياطي للملفات، وتنزيل المحتوى بشكل استباقي.
تتناول الأقسام التالية خطوات إضافة ميزة التحقّق من حالة الاتصال المحدود بالإنترنت إلى تطبيقك.
تسجيل معاودة الاتصال بالشبكة
سجِّل طلب معاودة الاتصال بالشبكة باستخدام
ConnectivityManager.registerDefaultNetworkCallback()
لتلقّي إشعار عند تغيير NetworkCapabilities. يمكنك رصد التغييرات التي تطرأ على
NetworkCapabilities من خلال إلغاء
الطريقة onCapabilitiesChanged()
في NetworkCallback.
يتسبّب registerDefaultNetworkCallback() في تشغيل دالة الاستدعاء المسجّلة
فور تسجيلها، ما يمنح التطبيق معلومات عن الحالة الحالية. تُعد عمليات الاسترجاع المستقبلية مهمة لكي تتخذ التطبيقات الإجراء المناسب عند تغيير الحالة من غير محدود إلى محدود أو العكس.
التحقّق من حالة القياس
استخدِم العنصر NetworkCapabilites الذي تتلقّاه في عملية ردّ الاتصال بالشبكة للتحقّق من ناتج الرمز التالي:
Kotlin
NetworkCapabilities.hasCapability(NET_CAPABILITY_NOT_METERED) || NetworkCapabilities.hasCapability(NET_CAPABILITY_TEMPORARILY_NOT_METERED)
Java
NetworkCapabilities.hasCapability(NET_CAPABILITY_NOT_METERED) || NetworkCapabilities.hasCapability(NET_CAPABILITY_TEMPORARILY_NOT_METERED)
إذا كانت القيمة صحيحة، يمكنك اعتبار الشبكة غير محدودة الاستخدام.
اعتبارات أخرى
عند استخدام هذه الوظيفة، يُرجى مراعاة ما يلي:
يتطلّب استخدام العلامة
NET_CAPABILITY_TEMPORARILY_NOT_METEREDأن يكون تطبيقك قد تم تجميعه باستخدام حزمة تطوير البرامج (SDK) لنظام التشغيل Android 11.تكون إمكانية
NET_CAPABILITY_NOT_METEREDدائمة على الشبكة. سيتم تلقائيًا قطع اتصال الشبكة التي تتضمّن هذه الإمكانية إذا فقدت هذه الإمكانية (أصبحت خاضعة لحدود الاستخدام).في المقابل، قد يتغيّر
NET_CAPABILITY_TEMPORARILY_NOT_METEREDعلى شبكة بدون قطع الاتصال. لذلك، يجب أن تستمع التطبيقات إلى معاودة الاتصالonCapabilitiesChanged()للتعامل مع الحالات التي تعود فيها الشبكة إلى حالة القياس (أي تفقد إمكانيةNET_CAPABILITY_TEMPORARILY_NOT_METERED).لا يمكن أن تتضمّن الشبكة كلاً من
NET_CAPABILITY_NOT_METEREDوNET_CAPABILITY_TEMPORARILY_NOT_METEREDفي الوقت نفسه.
رصد شبكة الجيل الخامس
بدءًا من نظام التشغيل Android 11، يمكنك رصد ما إذا كان الجهاز متصلاً بشبكة الجيل الخامس باستخدام طلب بيانات من واجهة برمجة التطبيقات المستندة إلى معاودة الاتصال. يمكنك التحقّق مما إذا كان الاتصال بشبكة 5G NR (مستقلة) أو NSA (غير مستقلة).
قد تشمل بعض استخدامات طلب البيانات من واجهة برمجة التطبيقات ما يلي:
عرض العلامة التجارية لشبكة الجيل الخامس في تطبيقك لإبراز أنّك تقدّم تجربة فريدة على شبكة الجيل الخامس
تفعيل تجربة فريدة على شبكة الجيل الخامس في التطبيق فقط عند الاتصال بشبكة الجيل الخامس يجب أن تقترن عملية التحقّق من الحالة هذه بالتحقّق من حالة الاتصال المحدود.
تتبُّع عمليات الاتصال بشبكة الجيل الخامس لأغراض إحصائية
لاختبار رصد شبكة الجيل الخامس بدون جهاز متوافق معها، يمكنك استخدام الميزات المضافة إلى محاكي حزمة تطوير البرامج (SDK) لنظام Android.
اكتشاف شبكة الجيل الخامس
استدعاء
TelephonyManager.listen()،
مع تمرير
LISTEN_DISPLAY_INFO_CHANGED،
لتحديد ما إذا كان المستخدم متصلاً بشبكة الجيل الخامس. تجاهل طريقة
onDisplayInfoChanged()
لتحديد نوع الشبكة المستخدَمة لأغراض العرض. الاستثناء الوحيد هو أنّه إذا اختار مشغّل شبكة الجوّال عرض 5G كنوع تكنولوجيا الراديو لشبكة mmWave، سيتم عرض OVERRIDE_NETWORK_TYPE_NR_NSA.
يعرض الجدول التالي الشبكات التي تتوافق مع القيم:
| نوع الإرجاع | الشبكة |
|---|---|
OVERRIDE_NETWORK_TYPE_LTE_ADVANCED_PRO |
Advanced pro LTE (5Ge) |
OVERRIDE_NETWORK_TYPE_NR_NSA |
NR (5G) لشبكات الجيل الخامس Sub-6 |
OVERRIDE_NETWORK_TYPE_NR_NSA_MMWAVE |
(5G+/5G UW) لشبكات 5G mmWave |
تقدير معدّل نقل البيانات
يستخدم تقدير معدل نقل البيانات الكائن NetworkCapabilities الذي تعمل معه عند تحديد ما إذا كان الاتصال خاضعًا لقياس الاستخدام. يمكنك الحصول على تقديرات النطاق الترددي باستخدام هذا العنصر.
تتحسّن موثوقية ودقة طرق تقدير معدل نقل البيانات
getLinkDownstreamBandwidthKbps()
و
getLinkUpstreamBandwidthKbps()
في نظام التشغيل Android 11 بسبب التحسينات التي تم إدخالها على إمكانية استخدام إطار العمل
وإصلاح الأخطاء في النظام الأساسي/المودم لاستيعاب شبكات الجيل الخامس.
تقدّم إعدادات معدل نقل البيانات التلقائية إرشادات بشأن بدء تشغيل التطبيق فقط. من المفترض أن يساعدك ذلك في سيناريو "بدء التشغيل عند عدم النشاط". يجب أن يقيس تطبيقك ما يراه بعد أن يبدأ المستخدمون في التفاعل معه، وأن يعدّل سلوك البث بشكل ديناميكي. على سبيل المثال، يمكنك اختيار دقّة الفيديو التي تريد توفيرها استنادًا إلى تقدير معدل نقل البيانات عند بدء التشغيل. واصِل التحقّق من التقديرات أثناء استخدام المستخدمين للتطبيق، وعدِّل سلوك تطبيقك وفقًا لذلك عند تغيُّر نوع الاتصال وقوته.