আপনার অ্যাপে 5G ক্ষমতা যোগ করুন

অ্যান্ড্রয়েড ১১ আপনার অ্যাপগুলিতে 5G সমর্থন করার জন্য কার্যকারিতা যোগ করে। এই বিষয়টি কার্যকারিতা সম্পর্কে আলোচনা করে এবং আপনার অ্যাপে 5G-নির্দিষ্ট কার্যকারিতা যোগ করলে ব্যবহারকারীর অভিজ্ঞতা কীভাবে উন্নত হতে পারে তার একটি সারসংক্ষেপ দেয়।

5G এর জন্য তৈরি করুন

5G-এর সাথে কীভাবে যুক্ত হবেন তা সিদ্ধান্ত নেওয়ার সময়, আপনি কী ধরণের অভিজ্ঞতা তৈরি করার চেষ্টা করছেন তা ভেবে দেখুন। 5G আপনার অ্যাপকে উন্নত করতে পারে এমন কিছু উপায়ের মধ্যে রয়েছে:

  • 5G এর গতি এবং লেটেন্সি উন্নতির কারণে স্বয়ংক্রিয়ভাবে বর্তমান অভিজ্ঞতাগুলিকে দ্রুত এবং উন্নত করে তোলে।
  • ব্যবহারকারীর অভিজ্ঞতা উন্নত করুন, যেমন 4k ভিডিও দেখানো বা উচ্চ-রেজোলিউশনের গেম সম্পদ ডাউনলোড করা।
  • বর্ধিত ডেটা ব্যবহারের ফলে ব্যবহারকারীর কোনও খরচ হবে না তা নিশ্চিত করার পর, সাধারণত শুধুমাত্র Wi-Fi এর মাধ্যমে প্রদত্ত অভিজ্ঞতাগুলি অন্তর্ভুক্ত করুন, যেমন সাধারণত মিটারবিহীন Wi-Fi এর জন্য সংরক্ষিত সামগ্রী সক্রিয়ভাবে ডাউনলোড করা।
  • 5G-র মতো অনন্য অভিজ্ঞতা প্রদান করুন যা শুধুমাত্র উচ্চ গতি এবং কম ল্যাটেন্সির সাথে কাজ করে।

5G কার্যকারিতা

অ্যান্ড্রয়েড ১১ নিম্নলিখিত কার্যকারিতা পরিবর্তন এবং বর্ধিতকরণগুলি উপস্থাপন করে:

পরিমাপ পরীক্ষা করুন

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 ফ্ল্যাগ ব্যবহার করতে পারে। Android 9 এবং তার নিচের ভার্সনে চলমান ডিভাইসগুলিতে, OS ফ্ল্যাগটি রিপোর্ট করবে না। Android 10-এ চলমান অ্যাপগুলির জন্য, এই ফ্ল্যাগটি উপলব্ধ থাকতে পারে, এটি কোন ডিভাইসে চলছে তার উপর নির্ভর করে।

একবার আপনি যখন নির্ধারণ করবেন যে বর্তমান নেটওয়ার্কটি অস্থায়ী বা স্থায়ীভাবে মিটারিং ছাড়াই আছে, তখন আপনি উচ্চ-রেজোলিউশনের সামগ্রী (যেমন 4k ভিডিও) প্রদর্শন করতে পারবেন, লগ আপলোড করতে পারবেন, ফাইলের ব্যাকআপ নিতে পারবেন এবং সক্রিয়ভাবে সামগ্রী ডাউনলোড করতে পারবেন।

নিম্নলিখিত বিভাগগুলিতে আপনার অ্যাপে মিটারডনেস-চেকিং যোগ করার ধাপগুলি অন্তর্ভুক্ত করা হয়েছে।

একটি নেটওয়ার্ক কলব্যাক নিবন্ধন করুন

NetworkCapabilities কখন পরিবর্তন হয় তা শুনতে ConnectivityManager.registerDefaultNetworkCallback() ব্যবহার করে নেটওয়ার্ক কলব্যাকের জন্য নিবন্ধন করুন। আপনার NetworkCallbackonCapabilitiesChanged() পদ্ধতিটি ওভাররাইড করে আপনি NetworkCapabilities এর পরিবর্তনগুলি সনাক্ত করতে পারেন।

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 সংযোগ বিচ্ছিন্ন না করেই কোনও নেটওয়ার্কে পরিবর্তন হতে পারে। অতএব, নেটওয়ার্কটি যখন তার মিটারযুক্ত অবস্থায় ফিরে আসে ( NET_CAPABILITY_TEMPORARILY_NOT_METERED ক্ষমতা হারায়) তখন অ্যাপগুলিকে onCapabilitiesChanged() কলব্যাক পরিচালনা করার জন্য শুনতে হবে।

  • একটি নেটওয়ার্কে একই সময়ে NET_CAPABILITY_NOT_METERED এবং NET_CAPABILITY_TEMPORARILY_NOT_METERED উভয়ই থাকতে পারে না।

5G সনাক্তকরণ

অ্যান্ড্রয়েড ১১ থেকে শুরু করে, আপনি কলব্যাক-ভিত্তিক API কল ব্যবহার করে ডিভাইসটি 5G নেটওয়ার্কের সাথে সংযুক্ত কিনা তা সনাক্ত করতে পারবেন। সংযোগটি 5G NR (স্বতন্ত্র) নাকি NSA (নন-স্ট্যান্ডঅ্যালোন) নেটওয়ার্ক তা আপনি পরীক্ষা করতে পারবেন।

এই API কলের কিছু ব্যবহার অন্তর্ভুক্ত থাকতে পারে:

  • আপনার অ্যাপে 5G ব্র্যান্ডিং প্রদর্শন করে আপনি যে একটি অনন্য 5G অভিজ্ঞতা প্রদান করছেন তা তুলে ধরা।

  • শুধুমাত্র 5G নেটওয়ার্কে থাকাকালীন অ্যাপে একটি অনন্য 5G অভিজ্ঞতা সক্রিয় করা। আপনার এই স্ট্যাটাস চেকটি মিটারডনেস চেকিংয়ের সাথে যুক্ত করা উচিত।

  • বিশ্লেষণের উদ্দেশ্যে 5G সংযোগের উপর নজর রাখা।

5G ডিভাইস ছাড়াই 5G সনাক্তকরণ পরীক্ষা করতে, আপনি Android SDK এমুলেটরে যোগ করা বৈশিষ্ট্যগুলি ব্যবহার করতে পারেন।

5G সনাক্ত করুন

ব্যবহারকারীর 5G নেটওয়ার্ক সংযোগ আছে কিনা তা নির্ধারণ করতে LISTEN_DISPLAY_INFO_CHANGED লিখে TelephonyManager.listen() এ কল করুন। প্রদর্শনের উদ্দেশ্যে ব্যবহৃত নেটওয়ার্কের ধরণ নির্ধারণ করতে onDisplayInfoChanged() পদ্ধতিটি ওভাররাইড করুন। একটি ব্যতিক্রম হল, যদি ক্যারিয়ার তাদের mmWave নেটওয়ার্কের জন্য RAT হিসাবে 5G দেখানোর বিকল্প বেছে নেয়, তাহলে OVERRIDE_NETWORK_TYPE_NR_NSA ফেরত পাঠানো হবে।

নিম্নলিখিত টেবিলটি মানগুলির সাথে সঙ্গতিপূর্ণ নেটওয়ার্কগুলি দেখায়:

রিটার্ন টাইপ নেটওয়ার্ক
OVERRIDE_NETWORK_TYPE_LTE_ADVANCED_PRO অ্যাডভান্সড প্রো LTE (5Ge)
OVERRIDE_NETWORK_TYPE_NR_NSA 5G সাব-6 নেটওয়ার্কের জন্য NR (5G)
OVERRIDE_NETWORK_TYPE_NR_NSA_MMWAVE 5G mmWave নেটওয়ার্কের জন্য (5G+/5G UW)

ব্যান্ডউইথ অনুমান

ব্যান্ডউইথ অনুমান মিটারডনেস নির্ধারণের সময় আপনি যে NetworkCapabilities অবজেক্টটি ব্যবহার করেন তা ব্যবহার করে। আপনি সেই অবজেক্ট ব্যবহার করে ব্যান্ডউইথ অনুমান পেতে পারেন।

5G ব্যবহারের জন্য ফ্রেমওয়ার্ক সাপোর্ট এবং প্ল্যাটফর্ম/মডেম বাগ ফিক্সের আপগ্রেডের কারণে অ্যান্ড্রয়েড ১১-এ getLinkDownstreamBandwidthKbps() এবং getLinkUpstreamBandwidthKbps() ব্যান্ডউইথ অনুমান পদ্ধতির নির্ভরযোগ্যতা এবং নির্ভুলতা উন্নত হয়েছে।

ব্যান্ডউইথ ডিফল্টগুলি কেবল অ্যাপ স্টার্ট-আপের ক্ষেত্রে নির্দেশিকা প্রদান করে। এটি আপনাকে "স্টার্ট-আপ অন আইডল" পরিস্থিতিতে সাহায্য করবে। আপনার ব্যবহারকারীরা অ্যাপের সাথে যুক্ত হওয়ার পরে আপনার অ্যাপটি কী দেখবে তা পরিমাপ করবে এবং এর স্ট্রিমিং আচরণকে গতিশীলভাবে সামঞ্জস্য করবে। উদাহরণস্বরূপ, আপনি স্টার্টআপের সময় ব্যান্ডউইথ অনুমানের উপর ভিত্তি করে ভিডিওর রেজোলিউশন প্রদান করতে পারেন। আপনার ব্যবহারকারীরা অ্যাপ ব্যবহার করার সাথে সাথে অনুমানগুলি পরীক্ষা করা চালিয়ে যান; তাদের সংযোগের ধরণ এবং শক্তি পরিবর্তনের সাথে সাথে, সেই অনুযায়ী আপনার অ্যাপের আচরণ সামঞ্জস্য করুন।