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

اندروید 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) ||
  NetworkCapabilities.hasCapability(NET_CAPABILITY_TEMPORARILY_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 در قسمت بالا مراجعه کنید.

دیدگاه‌ها و پرسش‌ها

برای ارسال نظر نیاز است تا ابتدا وارد سایت شوید.

هیچ نظری ارسال نشده است.

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


قیمت آموزش
رایگان
نوع دسترسی
رایگان

این مقاله در حال حاضر تنها به روش رایگان در دسترس می باشد.

golaleh hoseini
مدرس دوره

golaleh hoseini

مدرس دوره های سِون کلونر

گفتگوی برنامه نویسان

بخشی برای حل مشکلات برنامه‌نویسی و مباحث پیرامون آن

مقالات پیشنهادی

درباره فایل Robots.txt

این فایل ربات های خزنده موتور های جستجو را راهنمایی می کنند و به آنان می فهماند که چه دایرکتوری و لینک هایی قابل بررسی و چه دایرکتوری و لینک هایی غیرقابل برررسی می باشند...


۷۵۵
۰
۲ دی ۱۳۹۹

پی اچ پی - PHP

با استفاده از این زبان می توان وب سایت های پویا طراحی کرد, این زبان می تواند با HTML ادغام شود, در حقیقت یک زبان اسکریپتی متن باز و رایگان است. یعنی زمانی که سرور درخواست ...


۹۴۶
۰
۱۳ آذر ۱۳۹۹

اندروید

اندروید یک سیستم عامل می باشد که توسط گوگل توسعه داده میشود, این سیستم عامل بر پایه نسخه ی اصلاح شده ی هسته ی لینوکس و دیگر نرم افزار های متن باز طراحی شده است و ...


۱۰۵۵
۰
۲۹ آبان ۱۳۹۹

بک لینک چیست؟

بک لینک (Back Link) به لینک دادن یک سایت به سایت دیگر گفته میشود که یک فاکتور مهم و اساسی در سئو هر سایتی می باشد.


۹۹۲
۰
۲۲ آذر ۱۳۹۹

Fatal error: Uncaught wfWAFStorageFileException: Unable to verify temporary file contents for atomic writing. in /home/clonerco/public_html/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/storage/file.php:52 Stack trace: #0 /home/clonerco/public_html/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/storage/file.php(659): wfWAFStorageFile::atomicFilePutContents('/home/clonerco/...', '<?php exit('Acc...') #1 [internal function]: wfWAFStorageFile->saveConfig('livewaf') #2 {main} thrown in /home/clonerco/public_html/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/storage/file.php on line 52