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