إضافة إمكانات شبكة الجيل الخامس إلى تطبيقك

يضيف نظام التشغيل 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. على الأجهزة التي تعمل بالإصدار 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)

إذا كانت القيمة true، يمكنك التعامل مع الشبكة على أنّها غير محدودة.

اعتبارات إضافية

عند استخدام هذه الوظيفة، يُرجى مراعاة ما يلي:

  • يتطلّب استخدام العلامة NET_CAPABILITY_TEMPORARILY_NOT_METERED أن تتم تجميع تطبيقك باستخدام حزمة تطوير البرامج (SDK) لنظام التشغيل Android 11.

  • تكون ميزة NET_CAPABILITY_NOT_METERED دائمة على الشبكة. سيتم إيقاف شبكة تتضمّن هذه الميزة تلقائيًا إذا فقدت هذه الميزة (أصبحت متاحة برسوم).

  • في المقابل، قد يتغيّر NET_CAPABILITY_TEMPORARILY_NOT_METERED على شبكة بدون انقطاع الاتصال. لذلك، يجب أن تستمع التطبيقات إلى onCapabilitiesChanged() callback للتعامل مع الحالة التي تعود فيها الشبكة إلى حالة NET_CAPABILITY_TEMPORARILY_NOT_METERED (تفقد onCapabilitiesChanged() القدرة).

  • لا يمكن أن تتضمّن الشبكة كلاً من NET_CAPABILITY_NOT_METERED و NET_CAPABILITY_TEMPORARILY_NOT_METERED في الوقت نفسه.

رصد شبكة الجيل الخامس

بدءًا من الإصدار 11 من Android، يمكنك رصد ما إذا كان الجهاز متصلاً بشبكة الجيل الخامس باستخدام طلب بيانات من واجهة برمجة التطبيقات يستند إلى طلبات إعادة الاتصال. يمكنك التحقّق مما إذا كان الاتصال بشبكة 5G NR (مستقلة) أو NSA (غير مستقلة).

قد تشمل بعض استخدامات طلب البيانات من واجهة برمجة التطبيقات ما يلي:

  • عرض العلامة التجارية لشبكة الجيل الخامس في تطبيقك للتأكيد على أنّك تقدّم تجربة فريدة لشبكة الجيل الخامس

  • تفعيل تجربة فريدة من نوعها لشبكة الجيل الخامس في التطبيق فقط عند الاتصال بشبكة الجيل الخامس يجب إقران عملية التحقّق من الحالة هذه بعملية التحقّق من قياس الاستهلاك.

  • تتبُّع عمليات الاتصال بشبكة الجيل الخامس لأغراض متعلقة بالإحصاءات

لاختبار ميزة رصد شبكة الجيل الخامس بدون جهاز مزوّد بشبكة الجيل الخامس، يمكنك استخدام الميزات المُضافة إلى emulator (محاكي) Android SDK.

رصد شبكة الجيل الخامس

اتصل بـ 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 (الجيل الخامس) لشبكات الجيل الخامس من نوع Sub-6
OVERRIDE_NETWORK_TYPE_NR_NSA_MMWAVE ‫(5G+/5G UW) لشبكات الجيل الخامس ذات النطاق الفائق العرض (mmWave)

تقدير معدل نقل البيانات

يستخدم تقدير معدل نقل البيانات عنصر NetworkCapabilities الذي تعمل معه عند تحديد معدّل قياس الأداء. يمكنك الحصول على تقديرات لسعة النطاق باستخدام هذا العنصر.

تم تحسين موثوقية ودقة طرق تقدير معدل نقل البيانات getLinkDownstreamBandwidthKbps() و getLinkUpstreamBandwidthKbps() في Android 11 بسبب الترقيات التي تم إجراؤها على الإطار الأساسي وإصلاح أخطاء النظام الأساسي/المودم لاستيعاب شبكة الجيل الخامس.

تقدّم الإعدادات التلقائية لمعدل نقل البيانات إرشادات حول بدء تشغيل التطبيق فقط. من المفترض أن يساعدك ذلك في التعامل مع سيناريو "التشغيل في وضع السكون". يجب أن يقيس تطبيقك ما يرصده بعد أن يبدأ المستخدمون التفاعل معه وأن يعدّل سلوك البث بشكل ديناميكي. على سبيل المثال، يمكنك اختيار درجة دقة الفيديو الذي تريده تقديمه استنادًا إلى تقدير معدل نقل البيانات عند بدء التشغيل. يُرجى مواصلة التحقّق من التقييمات أثناء استخدام المستخدمين للتطبيق، وتعديل سلوك تطبيقك وفقًا لذلك عندما يتغيّر نوع الاتصال وشدّته.