اندروید 11 قابلیت پشتیبانی از 5 G را در برنامه های شما اضافه می کند. این مقاله نحوه عملکرد آن را پوشش می دهد و به شما یک نمای کلی می دهد که چگونه افزودن قابلیت های ویژه 5G به برنامه شما می تواند تجربه کاربر را بهبود بخشد.
Build for 5G
هنگام تصمیم گیری در مورد نحوه تعامل با 5G، به این فکر کنید که می خواهید چه نوع تجربه هایی را ایجاد کنید. برخی از راه هایی که 5G می تواند برنامه شما را تقویت کند شامل موارد زیر است:
- به دلیل بهبود سرعت 5G، به صورت خودکار تجربه های فعلی را سریعتر و بهتر کنید.
- تجربه کاربر را بالاتر ببرید، مثلاً با نمایش فیلم 4k یا بارگیری بازی با وضوح بالاتر.
- پس از تأیید اینکه افزایش استفاده از داده ها هزینه ای برای کاربر ندارد، شامل تجربیاتی است که معمولاً فقط از طریق Wi-Fi ارائه می شود، مانند بارگیری فعالانه محتوایی که معمولاً برای Wi-Fi بدون اندازه ذخیره می شود.
- تجربه های منحصر به فرد 5G را ارائه دهید که فقط با سرعت بالا و تأخیر کم کار می کنند.
قابلیت 5G
اندروید 11 تغییرات و بهبودهای عملکرد زیر را به شما معرفی می کند:
- Meteredness
- 5G detection
- Bandwidth estimation
Check meteredness
NET_CAPABILITY_TEMPORARILY_NOT_METERED قابلیت اضافه شده در Android 11 است که به شما می گوید بر اساس اطلاعات ارائه شده توسط شرکت های مخابراتی تلفن همراه، شبکه مورد استفاده شما اندازه گیری نشده است.
flagجدید در کنار NET_CAPABILITY_NOT_METERED استفاده می شود. flagموجود نشان می دهد که آیا یک شبکه تا به حال اندازه گیری نشده و هم برای Wi-Fi و هم برای اتصالات تلفن همراه اعمال می شود.
تفاوت این دو flag در این است که NET_CAPABILITY_TEMPORARILY_NOT_METERED ممکن است بدون تغییر نوع شبکه تغییر کند. برنامه هایی که Android 11 را هدف قرار می دهند می توانند از flag NET_CAPABILITY_TEMPORARILY_NOT_METERED استفاده کنند. در دستگاه هایی که روی Android 9 و پایین تر کار می کنند، سیستم عامل گزارشی درباره flag ارائه نمی دهد. برای برنامه هایی که روی Android 10 اجرا می شوند، بسته به دستگاهی که در حال اجرا است ، ممکن است این flagدر دسترس باشد.
هنگامی که تشخیص دادید شبکه فعلی به طور موقت یا دائماً اندازه گیری نشده است، می توانید محتوای با وضوح بالاتر (مانند فیلم 4k) را نمایش دهید، گزارش ها را بارگذاری کنید، از پرونده ها پشتیبان تهیه کنید و به صورت فعالانه محتوا را بارگیری کنید.
بخشهای زیر مراحل افزودن اندازه گیری به برنامه شما را شامل می شود.
پاسخ تماس شبکه را ثبت کنید.
با استفاده از ConnectivityManager.registerDefaultNetworkCallback() برای پاسخگویی در شبکه ثبت نام کنید تا هنگام تغییر قابلیت NetworkC تماس را بشنوید. شما می توانید با لغو روش () OnCapunitiesChanged () در NetworkCallback خود، تغییراتی را در NetworkCapunities تشخیص دهید.
RegisterDefaultNetworkCallback() باعث می شود که تماس تلفنی ثبت شده بلافاصله هنگام ثبت نام فعال شود و به برنامه اطلاعات مربوط به وضعیت فعلی را بدهد. در صورت تغییر وضعیت از حالت غیر متغیر به متراژ یا برعکس، تماس های بعدی برای برنامه ها بسیار مهم است.
Check for meteredness
برای بررسی خروجی کد زیر از شی NetworkCapabilites که در یک تماس شبکه دریافت می کنید استفاده کنید:
NetworkCapabilities.hasCapability(NET_CAPABILITY_NOT_METERED) || |
Kotlin |
NetworkCapabilities.hasCapability(NET_CAPABILITY_NOT_METERED) || NetworkCapabilities.hasCapability(NET_CAPABILITY_TEMPORARILY_NOT_METERED) |
Java |
اگر مقدار درست باشد، می توانید شبکه را به عنوان غیر مقیاس اندازه بگیرید.
ملاحظات اضافی
هنگام کار با این قابلیت، موارد زیر را بخاطر بسپارید:
- استفاده از flagبرای NET_CAPABILITY_TEMPORARILY_NOT_METERED مستلزم این است که برنامه خود را در برابر Android 11 SDK گرد آوری کنید.
- قابلیت NET_CAPABILITY_NOT_METERED در یک شبکه دائمی است. شبکه ای با این قابلیت در صورت از دست دادن قابلیت (به اندازه گیری شدن) به طور خودکار قطع می شود.
- در مقابل، NET_CAPABILITY_TEMPORARILY_NOT_METERED ممکن است بدون قطع اتصال در شبکه تغییر کند. بنابراین، برنامه ها برای پاسخگویی به فراخوانی onCapunitiesChanged() برای رسیدگی به هنگام بازگشت شبکه به وضعیت اندازه گیری شده (توانایی NET_CAPABILITY_TEMPORARILY_NOT_METERED را از دست می دهند) باید گوش دهند.
- یک شبکه نمی تواند همزمان NET_CAPABILITY_NOT_METERED و NET_CAPABILITY_TEMPORARILY_NOT_METERED داشته باشد.
ردیابی 5G
با شروع Android 11، می توانید با استفاده از تماس API مبتنی بر پاسخ، تشخیص دهید که دستگاه به شبکه 5G متصل است. می توانید اتصال 5G NR (مستقل) یا NSA (غیراستاندارد) شبکه را بررسی کنید.
توجه: در حالی که می توانید اتصال به شبکه 5G را بررسی کنید، نمی توانید اندازه گیری، سرعت اتصال و یا پهنای باند را از این سیگنال براورد کنید.
برخی از موارد استفاده از این تماس 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 بازگردانده می شود.
جدول زیر شبکه هایی را نشان می دهد که با مقادیر مطابقت دارند:
Network | Return type |
Advanced pro LTE (5Ge) | OVERRIDE_NETWORK_TYPE_LTE_ADVANCED_PRO |
NR (5G) for 5G Sub-6 networks | OVERRIDE_NETWORK_TYPE_NR_NSA |
(5G+/5G UW) for 5G mmWave networks | OVERRIDE_NETWORK_TYPE_NR_NSA_MMWAVE |
توجه: برنامه شما برای استفاده از این API باید دارای اجازه READ_PHONE_STATE باشد.
برآورد پهنای باند.
برای تخمین پهنای باند ازابزار NetworkCapunities استفاده می شود که هنگام تعیین اندازه گیری با آن کار می کنید. با استفاده از آن ابزار می توانید برآورد پهنای باند را دریافت کنید.
قابلیت اطمینان و دقت روش های تخمین پهنای باند getLinkDownstreamBandwidthKbps() و getLinkUpstreamBandwidthKbps() به دلیل بروزرسانی های پشتیبانی از چارچوب و رفع اشکال های پلت فرم / مودم برای جایگزینی 5G ، در Android 11 بهبود یافته است.
پیش فرض های پهنای باند فقط در مورد راه اندازی برنامه راهنمایی می کنند. این باید به شما در سناریوی “start-up on idle” کمک کند. برنامه شما باید آنچه را که می بیند اندازه گیری کند وقتی کاربران شما شروع به تعامل با این برنامه می کند باید رفتار پخش جریانی آن را به صورت پویا تنظیم کند. به عنوان مثال، شما می توانید وضوح تصویر را براساس برآورد پهنای باند هنگام راه اندازی، برای ارائه انتخاب کنید. همچنان که کاربران از برنامه استفاده می کنند، بررسی تخمین ها را ادامه دهید. با تغییر نوع اتصال و قدرت آنها، رفتار برنامه خود را متناسب تنظیم کنید.
توجه: برآورد پهنای باند، به تنهایی نمی تواند به شما بگوید که کاربر از 5G استفاده می کند یا نه. برای تعیین آن، به بخش ردیابی 5G در قسمت بالا مراجعه کنید.