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

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

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

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

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

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 NR (स्टैंडअलोन) है या एनएसए (नॉन-स्टैंडअलोन) नेटवर्क है.

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

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

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

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

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

5G का पता लगाना

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

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

रिटर्न टाइप नेटवर्क
OVERRIDE_NETWORK_TYPE_LTE_ADVANCED_PRO ऐडवांस प्रो एलटीई (5Ge)
OVERRIDE_NETWORK_TYPE_NR_NSA 5G Sub-6 नेटवर्क के लिए एनआर (5G)
OVERRIDE_NETWORK_TYPE_NR_NSA_MMWAVE 5G mmWave नेटवर्क के लिए (5G+/5G UW)

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

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

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

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