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

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

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

अनुमति से जुड़े उदाहरण

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

इन पैटर्न के बारे में यहां बताया गया है.

कॉन्टेक्स्ट के हिसाब से सवाल पूछना

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

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

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

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

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

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

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

अनुरोध अस्वीकार होने पर कार्रवाई करना

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

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

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

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

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

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

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

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

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

सेटिंग

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

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

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