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

يضيف نظام 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 (غير مستقلة).

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

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

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

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

لاختبار رصد شبكة الجيل الخامس بدون جهاز 5G، يمكنك استخدام الميزات المُضافة إلى أداة محاكاة حزمة تطوير البرامج (SDK) لنظام التشغيل Android.

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

يمكنك الاتصال TelephonyManager.listen()، وتمرير LISTEN_DISPLAY_INFO_CHANGED، لتحديد ما إذا كان المستخدم لديه اتصال بشبكة الجيل الخامس. أكمِل الطريقة onDisplayInfoChanged() لتحديد نوع الشبكة المستخدَمة لأغراض العرض. والاستثناء الوحيد لذلك هو أنّه إذا اختار مشغّل شبكة الجوّال عرض 5G كقيمة RAT لشبكة الموجة الميليمترية، سيتم عرض OVERRIDE_NETWORK_TYPE_NR_NSA.

يوضّح الجدول التالي الشبكات المطابِقة للقيم:

نوع الإرجاع الشبكة
OVERRIDE_NETWORK_TYPE_LTE_ADVANCED_PRO Advanced Pro LTE (5Ge)
OVERRIDE_NETWORK_TYPE_NR_NSA NR (5G) لشبكات 5G Sub-6
OVERRIDE_NETWORK_TYPE_NR_NSA_MMWAVE (5G+/5G UW) لشبكات الموجات الميليمترية 5G

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

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

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

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