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

يضيف نظام التشغيل Android 11 وظائف لدعم شبكة الجيل الخامس في تطبيقاتك. يتناول هذا الموضوع الوظائف ويقدّم لك نظرة عامة حول كيفية تحسين تجربة المستخدم من خلال إضافة وظائف خاصة بشبكة الجيل الخامس إلى تطبيقك.

إنشاء تطبيقات متوافقة مع شبكة الجيل الخامس

عند تحديد كيفية التفاعل مع شبكة الجيل الخامس، فكِّر في أنواع التجارب التي تحاول توفيرها. تشمل بعض الطرق التي يمكن لشبكة 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)

إذا كانت القيمة true، يمكنك التعامل مع الشبكة على أنّها لا تفرض تكلفة استخدام.

اعتبارات أخرى

عند التعامل مع هذه الوظيفة، يجب مراعاة ما يلي:

  • يتطلب استخدام العلامة 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 باستخدام طلب بيانات من واجهة برمجة التطبيقات المستند إلى معاودة الاتصال. يمكنك التحقق مما إذا كان الاتصال عبارة عن شبكة 5G NR (مستقلة) أو NSA (غير مستقلة).

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

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

  • توفير تجربة 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 (5G) لشبكات الجيل الخامس Sub-6
OVERRIDE_NETWORK_TYPE_NR_NSA_MMWAVE (5G+/5G UW) لشبكات 5G موجة ميليمترية

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

تستخدم ميزة تقدير معدل نقل البيانات عنصر NetworkCapabilities الذي يتم استخدامه عند تحديد مقياس معدل نقل البيانات. يمكنك الحصول على تقديرات معدل نقل البيانات باستخدام هذا الكائن.

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

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