يضيف Android 11 وظائف تتيح استخدام شبكة الجيل الخامس في تطبيقاتك. يتناول هذا الموضوع الوظائف ويقدّم لك نظرة عامة على كيفية إضافة وظائف خاصة بشبكة الجيل الخامس إلى تطبيقك لتحسين تجربة المستخدم.
التطوير لشبكة الجيل الخامس
عند تحديد كيفية التفاعل مع شبكة الجيل الخامس، فكِّر في أنواع التجارب التي تحاول إنشاءها. في ما يلي بعض الطرق التي يمكن لشبكة الجيل الخامس من خلالها تحسين تطبيقك:
- يمكنك تلقائيًا جعل التجارب الحالية أسرع وأفضل بفضل تحسينات السرعة وزمن الاستجابة في شبكة الجيل الخامس.
- تحسين تجربة المستخدم، مثل عرض فيديو بدقة 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. على الأجهزة التي تعمل بنظام التشغيل Android 9
والإصدارات الأقدم، لن يبلّغ نظام التشغيل عن العلامة. بالنسبة إلى التطبيقات التي تعمل على 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 (غير مستقلة).
قد تشمل بعض استخدامات طلب البيانات من واجهة برمجة التطبيقات هذا ما يلي:
عرض العلامة التجارية لشبكة الجيل الخامس في تطبيقك لإبراز أنّك تقدّم تجربة فريدة من نوعها لشبكة الجيل الخامس
تفعيل تجربة فريدة لشبكة الجيل الخامس في التطبيق فقط عند الاتصال بشبكة الجيل الخامس يجب إقران عملية التحقّق من الحالة هذه بالتحقّق من الاتصال المحدود.
تتبُّع اتصالات شبكة الجيل الخامس لأغراض متعلقة بالإحصاءات
لاختبار رصد شبكة الجيل الخامس بدون جهاز متوافق معها، يمكنك استخدام الميزات المضافة إلى محاكي Android SDK.
رصد شبكة الجيل الخامس
يمكنك استدعاء
TelephonyManager.listen()،
وتمرير
LISTEN_DISPLAY_INFO_CHANGED،
لتحديد ما إذا كان المستخدم متصلاً بشبكة الجيل الخامس. يمكنك إلغاء طريقة
onDisplayInfoChanged()
لتحديد نوع الشبكة المستخدَمة لأغراض العرض. يُستثنى من ذلك
إذا اختار مشغّل شبكة الجوّال عرض 5G كتكنولوجيا وصول لاسلكي لشبكة الموجات الملّيمترية،
يتم عرض 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) لشبكات الجيل الخامس ذات الموجة الميليمترية |
تقدير معدل نقل البيانات
يستخدم تقدير معدل نقل البيانات عنصر NetworkCapabilities الذي تعمل معه
عند تحديد ما إذا كان الاتصال محدودًا. يمكنك الحصول على تقديرات معدل نقل البيانات باستخدام هذا العنصر.
تتحسّن موثوقية ودقة طرق تقدير معدل نقل البيانات
getLinkDownstreamBandwidthKbps()
و
getLinkUpstreamBandwidthKbps()
في Android 11 بسبب ترقيات دعم إطار العمل
وإصلاحات أخطاء النظام الأساسي/المودم لاستيعاب شبكة الجيل الخامس.
توفّر الإعدادات التلقائية لمعدل نقل البيانات إرشادات حول بدء تشغيل التطبيق فقط. من المفترض أن يساعدك ذلك في سيناريو "بدء التشغيل في وضع عدم النشاط". يجب أن يقيس تطبيقك ما يراه بمجرد أن يبدأ المستخدمون في التفاعل مع التطبيق وضبط سلوك البث ديناميكيًا. على سبيل المثال، يمكنك اختيار دقة الفيديو التي تريد توفيرها استنادًا إلى تقدير معدل نقل البيانات عند بدء التشغيل. واصِل التحقّق من التقديرات أثناء استخدام المستخدمين للتطبيق، واضبط سلوك تطبيقك وفقًا لذلك مع تغيُّر نوع الاتصال وقوته.