Wear OS पर अनुमतियों का अनुरोध करें

कीवर्ड: wear, अनुमतियां, collection_guideslandingwear image_path: images/training/wear/multiple_permissions.png

Wear OS पर अनुमतियां मांगने का तरीका, मोबाइल ऐप्लिकेशन पर अनुमतियां मांगने के तरीके से मिलता-जुलता है. हालांकि, Wear OS पर अनुमतियां मांगने के कुछ और उदाहरण भी हैं. इस दस्तावेज़ में यह माना गया है कि आपको Android की अनुमतियों के काम करने के तरीके के बारे में जानकारी है. अगर आपको इस बारे में जानकारी नहीं है, तो Android पर अनुमतियां कैसे काम करती हैं, इस बारे में जानें.

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

अनुमति के उदाहरण

Wear OS पर खतरनाक अनुमतियों का अनुरोध करने पर, आपको कई स्थितियों का सामना क��ना पड़ सकता है:

  • Wear ऐप्लिकेशन, पहने जा सकने वाले डिवाइस पर चल रहे ऐप्लिकेशन के लिए अनुमतियों का अनुरोध करता है.

  • Wear ऐप्लिकेशन, फ़ोन पर चल रहे किसी ऐप्लिकेशन के लिए अनुमतियों का अनुरोध करता है.

  • फ़ोन ऐप्लिकेशन, पहने जा सकने वाले डिवाइस पर चल रहे ऐप्लिकेशन के लिए अनुमतियों का अनुरोध करता है.

  • फ़ोन ऐप्लिकेशन, कई अनुमतियों का अनुरोध करता है. इनका इस्तेमाल सिर्फ़ तब किया जा सकता है, जब पहने जाने वाले डिवाइस को कनेक्ट किया गया हो.

किसी काम करने वाले ऐप्लिकेशन में इन सभी स्थितियों को देखने के लिए, GitHub पर ExerciseSampleCompose का सैंपल देखें.

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

Wear ऐप्लिकेशन, स्मार्टवॉच की अनुमति का अनुरोध करता है

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

अनुमति के सिद्धांतों को पढ़ें और पक्का करें कि आपने अपने उपयोगकर्ताओं को सबसे अच्छा अनुभव दिया है. साथ ही, shouldShowRequestPermissionRationale() को देखना न भूलें और ज़रूरत पड़ने पर ज़्यादा जानकारी दें.

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

एक के बाद एक कई अनुमति स्क्रीन.
पहला डायग्राम. अनुमति पाने के लिए, एक के बाद एक दिखने वाली स्क्रीन.

Wear ऐप्लिकेशन, फ़ोन ऐक्सेस करने की अनुमति का अनुरोध करता है

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

Wear ऐप्लिकेशन, अनुमति देने के लिए उपयोगकर्ता को फ़ोन पर भेजता है.
दूसरी इमेज. अनुमति देने के लिए, उपयोगकर्ता को फ़ोन पर भेजें.

फ़ोन ऐप्लिकेशन, स्मार्टवॉच की अनुमति का अनुरोध करता है

अगर उपयोगकर्ता किसी फ़ोन ऐप्लिकेशन का इस्तेमाल कर रहा है और ऐप्लिकेशन को स्मार्टवॉच से अनुमति चाहिए, तो फ़ोन ऐप्लिकेशन उपयोगकर्ता को स्मार्टवॉच पर भेजता है. उदाहरण के लिए, फ़ोन के कनेक्ट न होने पर संगीत को पहले से लोड करने के लिए. ऐप्लिकेशन का स्मार्टवॉच वर्शन, सिस्टम की अनुमतियों का डायलॉग ट्रिगर करने के लिए, requestPermissions() तरीके का इस्तेमाल करता है.

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

फ़ोन ऐप्लिकेशन एक साथ कई अनुमतियों का अनुरोध करता है

चौथी इमेज. अनुमतियों वाला डायलॉग, जो एक ही अनुरोध में कई अनुमतियों का अनुरोध करने के लिए, साथी डिवाइस की प्रोफ़ाइल का इस्तेमाल करता है.

Android 12 (एपीआई लेवल 31) और इसके बाद के वर्शन पर काम करने वाले पार्टनर ऐप्लिकेशन, स्मार्टवॉच से कनेक्ट होने पर, साथी डिवाइस की प्रोफ़ाइलों का इस्तेमाल कर सकते हैं. प्रोफ़ाइल का इस्तेमाल करने से, रजिस्टर करने की प्रोसेस आसान हो जाती है. ऐसा इसलिए होता है, क्योंकि डिवाइस के टाइप के हिसाब से अनुमतियों के सेट को एक ही चरण में मंज़ूरी दी ��ाती है.

डिवाइस कनेक्ट होने के बाद, साथी ऐप्लिकेशन को बंडल की ग�� अनुमतिय����� ��िल ��ाती हैं. ���� ��नुमतियां सिर्फ़ तब तक रहती हैं, जब तक डिवाइस कनेक्ट रहता है. ऐप्लिकेशन मिटाने या असोसिएशन हटाने पर, अनुमतियां हट जाती हैं. ज़्यादा जानकारी के लिए, AssociationRequest.Builder.setDeviceProfile() देखें.

अनुमति के अनुरोध के पैटर्न

उपयोगकर्ताओं से अनुमतियां मांगने के लिए अलग-अलग पैटर्न होते हैं. प्राथमिकता के हिसाब से, ये हैं:

  • जब किसी खास फ़ंक्शन के लिए अनुमति ज़रूरी हो, लेकिन ऐप्लिकेशन के काम करने के लिए ज़रूरी न हो, तो इस बारे में बताएं.

  • जब अनुमति का अनुरोध करने की वजह साफ़ तौर पर न दिख रही हो और ऐप्लिकेशन के काम करने के लिए अनुमति ज़रूरी न हो, तो उपयोगकर्ताओं को इसकी जानकारी दें.

इन पैटर्न के बारे में नीचे दिए गए सेक्शन में बताया गया है.

कॉन्टेक्स्ट में सवाल पूछना

जब उपयोगकर्ता को यह साफ़ तौर पर पता हो कि किसी कार्रवाई को करने के लिए अनुमति की ज़रूरत क्यों है, तब अनुमतियों का अनुरोध करें. जब उपयोगकर्ताओं को यह समझ आ जाता है कि अनुमति से, जिस सुविधा का इस्तेमाल करना है उससे क्या संबंध है, तो वे अनुमति देने की संभावना ज़्यादा होती है.

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

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

कॉन्टेक्स्ट के हिसाब से जानकारी देना

छठी इमेज में, कॉन्टेक्स्ट के हिसाब से शिक्षा देने का उदाहरण दिया गया है. टाइमर शुरू करने के लिए, ऐप्लिकेशन को अनुमतियों की ज़रूरत नहीं होती. हालांकि, जानकारी देने वाली इनलाइन सूचना से पता चलता है कि गतिविधि का कुछ हिस्सा, जैसे कि जगह की जानकारी का पता लगाना, लॉक है. जब उपयोगकर्ता संकेत पर टैप करता है, तो अनुमति का अनुरोध करने वाली स्क्रीन दिखती है. इससे उपयोगकर्ता, जगह की जानकारी का पता लगाने की सुविधा को अनलॉक कर सकता है.

shouldShowRequestPermissionRationale() के तरीके का इस्तेमाल करके, अपने ऐप्लिकेशन को यह तय करने में मदद करें कि ज़्यादा जानकारी देनी है या नहीं. ज़्यादा जानकारी के लिए, ऐप्लिकेशन की अनुमतियां पाने का अनुरोध करना लेख पढ़ें. इसके अलावा, GitHub पर मौजूद स्पीकर के सैंपल ऐप्लिकेशन में, जानकारी दिखाने का तरीका भी देखा जा सकता है.

जब अनुमति की ज़रूरत पड़ती है, तो ऐप्लिकेशन यह बताता है कि अनुमति क्यों ज़रूरी है.
छठी इमेज. कॉन्टेक्स्ट के हिसाब से जानकारी दें.

अस्वीकार किए जाने की स्थिति को मैनेज करना

अगर उपयोगकर्ता किसी ऐसी अनुमति को अस्वीकार करता है जो किसी गतिविधि के लिए ज़रूरी नहीं है, तो उसे गतिविधि जारी रखने से न रोकें. अगर अनुमति न मिलने की वजह से गतिविधि के कुछ हिस्से बंद हो गए हैं, तो विज़ुअल और काम का फ़ीडबैक दें.

सातवें चित्र में, लॉक आइकॉन का इस्तेमाल करके यह दिखाया गया है कि किसी सुविधा को लॉक किया गया है, क्योंकि उपयोगकर्ता ने इसका इस्तेमाल करने की अनुमति नहीं दी है.

जब उपयोगकर्ता अनुमति देने से इनकार करता है, तो उस सुविधा क��� बगल में लॉक आइकॉन दिखता है.
सातवीं इमेज. लॉक आइकॉन, जो यह दिखाता है कि अनुमति न मिलने की वजह से, कोई सुविधा लॉक है.

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

सिस्टम, अनुमति का अनुरोध बंद करने का विकल्प देता है.
आठवीं इमेज. उपयोगकर्ता, सेटिंग में जाकर, अनुमति के लिए किए गए उस अनुरोध को ऐक्सेस कर सकता है जिसे पहले दो बार अस्वीकार किया गया था.

अनुमति न मिलने की समस्या को हल करने के बारे में ज़्यादा जानें.

सेवाओं के लिए अनुमतियां

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

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

सेटिंग

उपयोगकर्ता, सेटिंग में जाकर, Wear ऐप्लिकेशन की अनुमतियों को कभी भी बदल सकता है. जब उपयोगकर्ता ऐसा कोई काम करने की कोशिश करता है जिसके लिए अनुमति की ज़रूरत होती है, तो पहले checkSelfPermission() तरीका आज़माकर देखें कि ऐप्लिकेशन के पास वह कार्रवाई करने की अनुमति है या नहीं.

भले ही, उपयोगकर्ता ने पहले अनुमति दी हो, फिर भी यह जांच करें. ऐसा इसलिए, क्योंकि हो सकता है कि उपयोगकर्ता ने बाद में अनुमति रद्द कर दी हो.

उपयोगकर्ता, सेटिंग ऐप्लिकेशन की मदद से ��नुमतियां बदल सकता है.
नौवीं इमेज. उपयोगकर्ता, सेटिंग ऐप्लिकेशन का इस्तेमाल करके अनुमतियों में बदलाव कर सकता है.