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

يضيف نظام التشغيل 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)

إذا كانت القيمة 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 (غير مستقلة).

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

  • يعرض تطبيقك هوية العلامة التجارية لشبكة الجيل الخامس (5G) للإبراز أنّك تقدّم تجربة فريدة لشبكة الجيل الخامس.

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

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

لاختبار رصد شبكة الجيل الخامس بدون جهاز 5G، يمكنك استخدام الميزات التي تمت إضافتها إلى محاكي حزمة تطوير البرامج (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 (الجيل الخامس) لشبكات الجيل الخامس من نوع Sub-6
OVERRIDE_NETWORK_TYPE_NR_NSA_MMWAVE (5G+/5G UW) لشبكات الموجات الميليمترية 5G

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

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

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

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