अपने ऐप्लिकेशन में 5G की सुविधाएं जोड़ना

Android 11 में, ऐप्लिकेशन में 5G की सुविधा इस्तेमाल करने की सुविधा जोड़ी गई है. इस विषय में, फ़ंक्शन के बारे में बताया गया है. साथ ही, यह जानकारी भी दी गई है कि अपने ऐप्लिकेशन में 5G के हिसाब से फ़ंक्शन जोड़ने से, उपयोगकर्ता अनुभव को कैसे बेहतर बनाया जा सकता है.

5G के लिए बनाए गए ऐप्लिकेशन

5G का इस्तेमाल करने का तरीका तय करते समय, इस बात पर ध्यान दें कि आपको किस तरह के अनुभव देने हैं. 5G की मदद से, आपके ऐप्लिकेशन को बेहतर बनाने के कुछ तरीके यहां दिए गए हैं:

  • 5G की स्पीड और इंतज़ार के समय में सुधार होने की वजह से, मौजूदा सुविधाओं को अपने-आप और तेज़ बनाने की सुविधा मिलती है.
  • उपयोगकर्ता अनुभव को बेहतर बनाएं. जैसे, 4K वीडियो दिखाकर या ज़्यादा रिज़ॉल्यूशन वाली गेम ऐसेट डाउनलोड करके.
  • यह पक्का करने के बाद कि ज़्यादा डेटा खर्च करने पर उपयोगकर्ता को कोई शुल्क नहीं देना होगा, आम तौर पर सिर्फ़ वाई-फ़ाई पर उपलब्ध अनुभवों को शामिल करें. जैसे, बिना शुल्क वाले वाई-फ़ाई के लिए आम तौर पर उपलब्ध कॉन्टेंट को पहले से डाउनलोड करना.
  • 5G के लिए खास अनुभव उपलब्ध कराएं, जो सिर्फ़ तेज़ स्पीड और कम इंतज़ार के साथ काम करते हैं.

5G की सुविधा

Android 11 में, फ़ंक्शन में ये बदलाव और बेहतरियां की गई हैं:

मेज़रमेंट की सुविधा चालू है या नहीं, यह देखना

NET_CAPABILITY_TEMPORARILY_NOT_METERED, Android 11 में जोड़ी गई एक सुविधा है. इससे आपको यह पता चलता है कि मोबाइल और इंटरनेट सेवा देने वाली कंपनियों की दी गई जानकारी के आधार पर, आपके इस्तेमाल किए जा रहे नेटवर्क पर डेटा इस्तेमाल करने की कोई सीमा है या नहीं.

नए फ़्लैग का इस्तेमाल, NET_CAPABILITY_NOT_METERED के साथ किया जाता है. मौजूदा फ़्लैग से पता चलता है कि कोई नेटवर्क हमेशा बिना मेज़र किए इस्तेमाल किया जा सकता है या नहीं. यह फ़्लैग, वाई-फ़ाई और मोबाइल डेटा, दोनों पर लागू होता है.

दोनों फ़्लैग के बीच का अंतर यह है कि नेटवर्क टाइप बदले बिना भी NET_CAPABILITY_TEMPORARILY_NOT_METERED बदल सकता है. Android 11 को टारगेट करने वाले ऐप्लिकेशन, NET_CAPABILITY_TEMPORARILY_NOT_METERED फ़्लैग का इस्तेमाल कर सकते हैं. Android 9 और इससे पहले के वर्शन पर चल रहे डिवाइसों पर, ओएस इस फ़्लैग की जानकारी नहीं देगा. Android 10 पर काम करने वाले ऐप्लिकेशन के लिए, यह फ़्लैग उपलब्ध हो सकता है. हालांकि, यह इस बात पर निर्भर करता है कि ऐप्लिकेशन किस डिवाइस पर काम कर रहा है.

यह पता चलने के बाद कि मौजूदा नेटवर्क पर कुछ समय के लिए या हमेशा के लिए डेटा इस्तेमाल करने की कोई सीमा नहीं है, ज़्यादा रिज़ॉल्यूशन वाला कॉन्टेंट (जैसे, 4K वीडियो) दिखाया जा सकता है. साथ ही, लॉग अपलोड किए जा सकते हैं, फ़ाइलों का बैक अप लिया जा सकता है, और कॉन्टेंट को पहले से डाउनलोड किया जा सकता है.

नीचे दिए गए सेक्शन में, अपने ऐप्लिकेशन में मेज़रमेंट की जांच करने की सुविधा जोड़ने का तरीका बताया गया है.

नेटवर्क कॉलबैक रजिस्टर करें

NetworkCapabilities में बदलाव होने पर सूचना पाने के लिए, ConnectivityManager.registerDefaultNetworkCallback() का इस्तेमाल करके नेटवर्क कॉलबैक के लिए रजिस्टर करें. NetworkCallback में onCapabilitiesChanged() वाले तरीके को बदलकर, NetworkCapabilities में हुए बदलावों का पता लगाया जा सकता है.

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 फ़्लैग का इस्तेमाल करने के लिए, यह ज़रूरी है कि आपने अपने ऐप्लिकेशन को 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 में, कॉलबैक पर आधारित एपीआई कॉल का इस्तेमाल करके, यह पता लगाया जा सकता है कि डिवाइस 5G नेटवर्क से कनेक्ट है या नहीं. यह देखा जा सकता है कि कनेक्शन, 5G एनआर (स्टैंडअलोन) या एनएसए (नॉनस्टैंडअलोन) नेटवर्क है या नहीं.

इस एपीआई कॉल के कुछ इस्तेमालों में ये शामिल हो सकते हैं:

  • अपने ऐप्लिकेशन में 5G ब्रैंडिंग दिखाना, ताकि यह हाइलाइट किया जा सके कि आपका ऐप्लिकेशन 5G का यूनीक अनुभव दे रहा है.

  • सिर्फ़ 5G नेटवर्क का इस्तेमाल करने पर, ऐप्लिकेशन में 5G की सुविधा चालू करना. आपको इस स्टेटस की जांच को मेज़र किए जाने की जांच के साथ जोड़ना चाहिए.

  • आंकड़े जुटाने के लिए, 5G कनेक्शन का ट्रैक रखना.

5G डिवाइस के बिना, 5G नेटवर्क की पहचान करने की सुविधा की जांच करने के लिए, Android SDK इम्युलेटर में जोड़ी गई सुविधाओं का इस्तेमाल किया जा सकता है.

5G नेटवर्क का पता लगाएं

उपयोगकर्ता के पास 5G नेटवर्क है या नहीं, यह पता करने के लिए TelephonyManager.listen() को कॉल करें और LISTEN_DISPLAY_INFO_CHANGED को पास करें. डिसप्ले के लिए इस्तेमाल किए जाने वाले नेटवर्क टाइप का पता लगाने के लिए, onDisplayInfoChanged() के तरीके को बदलें. हालांकि, एक अपवाद है. अगर मोबाइल और इंटरनेट सेवा देने वाली कंपनी, अपने एमएम वेव नेटवर्क के लिए आरएटी के तौर पर 5G दिखाने का विकल्प चुनती है, तो OVERRIDE_NETWORK_TYPE_NR_NSA दिखाया जाता है.

नीचे दी गई टेबल में, वैल्यू से जुड़े नेटवर्क दिखाए गए हैं:

सामान लौटाने का तरीका नेटवर्क
OVERRIDE_NETWORK_TYPE_LTE_ADVANCED_PRO Advanced pro LTE (5Ge)
OVERRIDE_NETWORK_TYPE_NR_NSA 5G Sub-6 नेटवर्क के लिए एनआर (5G)
OVERRIDE_NETWORK_TYPE_NR_NSA_MMWAVE 5G मि॰मी॰ वेव नेटवर्क के लिए (5G+/5G UW)

बैंडविथ का अनुमान

बैंडविथ का अनुमान लगाने के लिए, उस NetworkCapabilities ऑब्जेक्ट का इस्तेमाल किया जाता है जिसके साथ मेट्रिक की वैल्यू तय की जाती है. उस ऑब्जेक्ट का इस्तेमाल करके आप बैंडविथ के अनुमान पा सकते हैं.

Android 11 में, बैंडविड्थ का अनुमान लगाने के तरीकों getLinkDownstreamBandwidthKbps() और getLinkUpstreamBandwidthKbps() पर भरोसा करना और उन्हें सटीक बनाना आसान हो गया है. ऐसा, फ़्रेमवर्क के लिए किए गए अपग्रेड और 5G के लिए प्लैटफ़ॉर्म/मॉडेम की गड़बड़ियों को ठीक करने की वजह से हुआ है.

डिफ़ॉल्ट बैंडविड्थ से, सिर्फ़ ऐप्लिकेशन के स्टार्ट-अप के बारे में जानकारी मिलती है. इससे आपको "इंजन बंद होने पर शुरू होने की सुविधा" से जुड़ी समस्या को हल करने में मदद मिलेगी. जब आपके उपयोगकर्ता आपके ऐप्लिकेशन का इस्तेमाल करना शुरू कर दें, तब आपके ऐप्लिकेशन को यह मेज़र करना चाहिए कि उसे क्या दिख रहा है. साथ ही, स्ट्रीमिंग के व्यवहार में डाइनैमिक तौर पर बदलाव करना चाहिए. उदाहरण के लिए, स्टार्टअप के समय बैंडविड्थ के अनुमान के आधार पर, वीडियो का रिज़ॉल्यूशन चुना जा सकता है. जब आपके उपयोगकर्ता ऐप्लिकेशन का इस्तेमाल करते हैं, तब अनुमान देखना जारी रखें. साथ ही, उनके कनेक्शन टाइप और गति बदलने पर, अपने ऐप्लिकेशन के व्यवहार में उसी हिसाब से बदलाव करें.