يضيف نظام التشغيل 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 والإصدارات الأقدم، لن يبلغ نظام التشغيل عن العلامة. بالنسبة إلى التطبيقات التي تعمل على الإصدار 10 من نظام التشغيل Android، قد يكون هذا الخيار متاحًا، وذلك حسب الجهاز الذي يتم تشغيل التطبيق عليه.
بعد التأكّد من أنّ الشبكة الحالية غير محدودة مؤقتًا أو بشكل دائم، يمكنك عرض محتوى بدقة أعلى (مثل فيديو بدقة 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 كنوع تقنية الراديو (RAT) لشبكة 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 بسبب ترقيات دعم إطار العمل وإصلاح الأخطاء في النظام الأساسي/المودم لاستيعاب شبكات الجيل الخامس (5G).
تقدّم إعدادات معدل نقل البيانات التلقائية إرشادات بشأن بدء تشغيل التطبيق فقط. من المفترض أن يساعدك ذلك في سيناريو "بدء التشغيل عند عدم النشاط". يجب أن يقيس تطبيقك ما يراه بعد أن يبدأ المستخدمون في التفاعل معه، وأن يعدّل سلوك البث بشكل ديناميكي. على سبيل المثال، يمكنك اختيار دقّة الفيديو التي تريد توفيرها استنادًا إلى تقدير معدل نقل البيانات عند بدء التشغيل. واصِل التحقّق من التقديرات أثناء استخدام المستخدمين للتطبيق، وعدِّل سلوك تطبيقك وفقًا لذلك مع تغيُّر نوع الاتصال وقوته.