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

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

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

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

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

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

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

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

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

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

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

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

Wear ऐप्लिकेशन, पहने जाने वाले डिवाइस की अनुमति मांगता है

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

सेटिंग

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

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

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