قابلیت های 5G را به برنامه خود اضافه کنید

اندروید 11 عملکردی را برای پشتیبانی از 5G در برنامه های شما اضافه می کند. این موضوع عملکرد را پوشش می‌دهد و به شما یک نمای کلی از اینکه چگونه افزودن عملکرد ویژه 5G به برنامه شما می‌تواند تجربه کاربر را بهبود بخشد، ارائه می‌کند.

ساخت برای 5G

هنگام تصمیم گیری در مورد نحوه تعامل با 5G، به این فکر کنید که چه نوع تجربه هایی را می خواهید ایجاد کنید. برخی از راه هایی که 5G می تواند برنامه شما را بهبود بخشد عبارتند از:

  • به دلیل بهبود سرعت و تأخیر 5G، تجربه‌های فعلی را به‌طور خودکار سریع‌تر و بهتر کنید.
  • تجربه کاربری را ارتقا دهید، مانند نمایش ویدیوی 4k یا دانلود دارایی های بازی با وضوح بالاتر.
  • پس از تأیید اینکه افزایش مصرف داده برای کاربر هزینه ای ندارد، تجربیاتی را که معمولاً فقط از طریق Wi-Fi ارائه می شود، در نظر بگیرید، مانند دانلود فعال محتوایی که معمولاً برای Wi-Fi نامحدود رزرو شده است.
  • تجربیاتی منحصر به فرد برای 5G ارائه دهید که فقط با سرعت بالا و تاخیر کم کار می کند.

عملکرد 5G

اندروید 11 تغییرات و پیشرفت های عملکردی زیر را معرفی می کند:

اندازه گیری را بررسی کنید

NET_CAPABILITY_TEMPORARILY_NOT_METERED قابلیتی است که در Android 11 اضافه شده است که به شما می‌گوید شبکه‌ای که استفاده می‌کنید بر اساس اطلاعات ارائه‌شده توسط شرکت‌های مخابراتی غیرمجاز است یا خیر.

پرچم جدید در کنار NET_CAPABILITY_NOT_METERED استفاده می شود. پرچم موجود نشان می‌دهد که آیا یک شبکه همیشه اندازه‌گیری نشده است یا خیر، و برای اتصالات Wi-Fi و سلولی اعمال می‌شود.

تفاوت بین این دو پرچم NET_CAPABILITY_TEMPORARILY_NOT_METERED است که ممکن است بدون تغییر نوع شبکه تغییر کند. برنامه‌هایی که Android 11 را هدف قرار می‌دهند می‌توانند از پرچم NET_CAPABILITY_TEMPORARILY_NOT_METERED استفاده کنند. در دستگاه‌های دارای اندروید 9 و پایین‌تر، سیستم‌عامل پرچم را گزارش نمی‌دهد. برای برنامه‌هایی که روی Android 10 اجرا می‌شوند، این پرچم بسته به دستگاهی که روی آن اجرا می‌شود، ممکن است در دسترس باشد.

هنگامی که تشخیص دادید که شبکه فعلی به طور موقت یا دائمی بدون اندازه‌گیری است، می‌توانید محتوای با وضوح بالاتر (مانند ویدیوی 4k) را نمایش دهید، گزارش‌ها را آپلود کنید، از فایل‌ها نسخه پشتیبان تهیه کنید و به طور فعال محتوا را دانلود کنید.

بخش‌های زیر مراحل افزودن اندازه‌گیری را به برنامه شما پوشش می‌دهند.

ثبت پاسخ تماس شبکه

با استفاده از ConnectivityManager.registerDefaultNetworkCallback() برای پاسخ به تماس شبکه ثبت نام کنید تا از تغییر NetworkCapabilities مطلع شوید. می‌توانید تغییرات NetworkCapabilities را با لغو روش onCapabilitiesChanged() در NetworkCallback خود شناسایی کنید.

registerDefaultNetworkCallback() باعث می شود که پس از ثبت نام، پاسخ تماس ثبت شده بلافاصله فعال شود و اطلاعاتی را در مورد وضعیت فعلی به برنامه می دهد. تماس‌های بعدی برای برنامه‌ها برای انجام اقدامات مناسب در زمانی که وضعیت از حالت اندازه‌گیری نشده به اندازه‌گیری شده یا برعکس تغییر می‌کند، حیاتی است.

اندازه گیری را بررسی کنید

برای بررسی خروجی کد زیر از شی NetworkCapabilites که در یک تماس شبکه دریافت می کنید استفاده کنید:

کاتلین

NetworkCapabilities.hasCapability(NET_CAPABILITY_NOT_METERED) ||
  NetworkCapabilities.hasCapability(NET_CAPABILITY_TEMPORARILY_NOT_METERED)

جاوا

NetworkCapabilities.hasCapability(NET_CAPABILITY_NOT_METERED) ||
  NetworkCapabilities.hasCapability(NET_CAPABILITY_TEMPORARILY_NOT_METERED)

اگر مقدار درست باشد، می‌توانید شبکه را بدون اندازه‌گیری در نظر بگیرید.

ملاحظات اضافی

هنگام کار با این قابلیت، موارد زیر را در نظر داشته باشید:

  • استفاده از پرچم NET_CAPABILITY_TEMPORARILY_NOT_METERED مستلزم آن است که برنامه خود را با Android 11 SDK کامپایل کرده باشید.

  • قابلیت NET_CAPABILITY_NOT_METERED در یک شبکه دائمی است. شبکه ای که این قابلیت را داشته باشد در صورت از دست دادن قابلیت (متردار شدن) به طور خودکار قطع می شود.

  • در مقابل، NET_CAPABILITY_TEMPORARILY_NOT_METERED ممکن است در شبکه بدون قطع ارتباط تغییر کند. بنابراین، برنامه‌ها باید به تماس‌های onCapabilitiesChanged() گوش دهند تا زمانی که شبکه به وضعیت اندازه‌گیری شده خود برمی‌گردد (قابلیت NET_CAPABILITY_TEMPORARILY_NOT_METERED را از دست می‌دهد).

  • یک شبکه نمی‌تواند NET_CAPABILITY_NOT_METERED و NET_CAPABILITY_TEMPORARILY_NOT_METERED را همزمان داشته باشد.

تشخیص 5G

با شروع Android 11، می‌توانید تشخیص دهید که دستگاه با استفاده از تماس API مبتنی بر تماس به شبکه 5G متصل است یا خیر. می توانید بررسی کنید که آیا اتصال یک شبکه 5G NR (مستقل) یا NSA (غیر مستقل) است.

برخی از کاربردهای این تماس API ممکن است شامل موارد زیر باشد:

  • نمایش نام تجاری 5G در برنامه شما برای برجسته کردن این که تجربه منحصر به فرد 5G را ارائه می دهید.

  • فعال کردن یک تجربه منحصر به فرد 5G در برنامه تنها زمانی که در شبکه 5G هستید. باید این بررسی وضعیت را با بررسی اندازه‌گیری جفت کنید.

  • پیگیری اتصالات 5G برای اهداف تحلیلی.

برای آزمایش تشخیص 5G بدون دستگاه 5G، می‌توانید از ویژگی‌های اضافه شده به شبیه‌ساز Android SDK استفاده کنید.

تشخیص 5G

برای تعیین اینکه آیا کاربر اتصال شبکه 5G دارد یا خیر، با شماره تلفن TelephonyManager.listen() ، با عبور از LISTEN_DISPLAY_INFO_CHANGED تماس بگیرید. برای تعیین نوع شبکه ای که برای اهداف نمایش استفاده می شود، روش onDisplayInfoChanged() را لغو کنید. یک استثنا این است که اگر شرکت مخابراتی 5G را به عنوان RAT برای شبکه mmWave خود نشان دهد، OVERRIDE_NETWORK_TYPE_NR_NSA برگردانده می شود.

جدول زیر شبکه های مربوط به مقادیر را نشان می دهد:

نوع برگشت شبکه
OVERRIDE_NETWORK_TYPE_LTE_ADVANCED_PRO LTE حرفه ای پیشرفته (5Ge)
OVERRIDE_NETWORK_TYPE_NR_NSA NR (5G) برای شبکه‌های 5G Sub-6
OVERRIDE_NETWORK_TYPE_NR_NSA_MMWAVE (5G+/5G UW) برای شبکه‌های 5G mmWave

تخمین پهنای باند

تخمین پهنای باند از شی NetworkCapabilities استفاده می کند که هنگام تعیین اندازه گیری با آن کار می کنید. با استفاده از آن شی می توانید تخمین پهنای باند را بدست آورید.

قابلیت اطمینان و دقت روش‌های تخمین پهنای باند getLinkDownstreamBandwidthKbps() و getLinkUpstreamBandwidthKbps() در اندروید 11 به دلیل ارتقاء پشتیبانی از چارچوب و رفع اشکال پلت فرم/مودم برای تطبیق با 5G بهبود می‌یابد.

پیش‌فرض‌های پهنای باند فقط راهنمایی در مورد راه‌اندازی برنامه ارائه می‌کنند. این باید به شما در سناریوی "راه اندازی در حالت بیکار" کمک کند. پس از شروع تعامل کاربران با برنامه، برنامه شما باید آنچه را که می بیند اندازه گیری کند و رفتار پخش جریانی آن را به صورت پویا تنظیم کند. برای مثال، می‌توانید وضوح ویدیو را بر اساس تخمین پهنای باند هنگام راه‌اندازی انتخاب کنید. همانطور که کاربران شما از برنامه استفاده می کنند، به بررسی تخمین ها ادامه دهید. همانطور که نوع اتصال و قدرت آنها تغییر می کند، رفتار برنامه خود را مطابق با آن تنظیم کنید.