keywords: wear, permissions, collection_guideslandingwear image_path: images/training/wear/multiple_permissions.png
Wear OS पर अनुमतियों का अनुरोध करने का तरीका, मोबाइल ऐप्लिकेशन में अनुमतियों का अनुरोध करने के तरीके जैसा ही होता है. हालांकि, इसमें इस्तेमाल के कुछ और उदाहरण भी शामिल होते हैं. इस दस्तावेज़ में यह मान लिया गया है कि आपको Android की अनुमतियों के काम करने के तरीके के बारे में जानकारी है. अगर आपको नहीं पता, तो Android पर अनुमतियां किस तरह काम करती हैं, यह लेख पढ़ें.
मोबाइल ऐप्लिकेशन की तरह ही, Wear ऐप्लिकेशन को भी कुछ सुविधाओं को ऐक्सेस करने के लिए, उपयोगकर्ता से अनुमतियां लेनी होती हैं. Wear ऐप्लिकेशन में, बिना किसी अनुमति का अनुरोध किए काम की सुविधाएं उपलब्ध कराएं.
अनुमति से जुड़े उदाहरण
Wear OS पर नुकसान पहुंचाने वाली अनुमतियों का अनुरोध करते समय, आपको कई तरह की समस्याएं आ सकती हैं:
Wear ऐप्लिकेशन, पहनने लायक डिवाइस पर चल रहे ऐप्लिकेशन के लिए अनुमतियों का अनुरोध करता है.
Wear ऐप्लिकेशन, फ़ोन पर चल रहे ऐप्लिकेशन के लिए अनुमतियों का अनुरोध करता है.
फ़ोन ऐप्लिकेशन, पहनने लायक डिवाइस पर चल रहे ऐप्लिकेशन के लिए अनुमतियों का अनुरोध करता है.
फ़ोन ऐप्लिकेशन, कई अनुमतियों का अनुरोध करता है. इनका इस्तेमाल सिर्फ़ तब किया जा सकता है, जब पहनने लायक डिवाइस कनेक्ट हो.
इन सभी स्थितियों को किसी ऐप्लिकेशन में देखने के लिए, GitHub पर ExerciseSampleCompose सैंपल देखें.
यहां दिए गए सेक्शन में, इन सभी स्थितियों के बारे में बताया गया है. अनुमतियों का अनुरोध करने के बारे में ज़्यादा जानकारी पाने के लिए, अनुमति के अनुरोध के पैटर्न सेक्शन देखें.
Wear ऐप्लिकेशन, पहनने लायक डिवाइस के लिए अनुमति का अनुरोध करता है
जब Wear ऐप्लिकेशन, पहनने लायक डिवाइस पर चल रहे किसी ऐप्लिकेशन के लिए अनुमति का अनुरोध करता है, तो सिस्टम एक डायलॉग बॉक्स दिखाता है. इससे उपयोगकर्ता को उस अनुमति के लिए प्रॉम्प्ट किया जाता है. अपने ऐप्लिकेशन में, अनुमतियों का अनुरोध सिर्फ़ तब करें, जब उपयोगकर्ता को यह साफ़ तौर पर पता हो कि किसी कार्रवाई को पूरा करने के लिए, अनुमतियों की ज़रूरत क्यों है.
अनुमति के सिद्धांतों को पढ़ें, ताकि यह पक्का किया जा सके कि उपयोगकर्ताओं को सबसे अच्छा अनुभव मिले. साथ ही, ज़रूरत के मुताबिक shouldShowRequestPermissionRationale() को देखें और अतिरिक्त जानकारी दें.
अगर किसी ऐप्लिकेशन या स्मार्टवॉच की होम स्क्रीन को एक साथ एक से ज़्यादा अनुमतियों की ज़रूरत होती है, तो अनुमति के अनुरोध एक के बाद एक दिखते हैं.
Wear ऐप्लिकेशन, फ़ोन ऐक्सेस करने की अनुमति मांगता है
जब Wear ऐप्लिकेशन, फ़ोन से जुड़ी किसी अनुमति का अनुरोध करता है, तब उसे उपयोगकर्ता को फ़ोन पर भेजना होगा. उदाहरण के लिए, अगर Wearable ऐप्लिकेशन को ऐप्लिकेशन के मोबाइल वर्शन पर मौजूद फ़ोटो या अन्य संवेदनशील डेटा को ऐक्सेस करना है, तो उसे उपयोगकर्ता को फ़ोन पर भेजना होगा, ताकि वह अनुमति दे सके. यहां फ़ोन ऐप्लिकेशन, गतिविधि का इस्तेमाल करके उपयोगकर्ता को अतिरिक्त जानकारी दे सकता है. गतिविधि में दो बटन शामिल करें: एक अनुमति देने के लिए और दूसरा अनुमति न देने के लिए.
फ़ोन ऐप्लिकेशन, स्मार्टवॉच को ऐक्सेस करने की अनुमति मांगता है
अगर उपयोगकर्ता किसी फ़ोन ऐप्लिकेशन में है और ऐप्लिकेशन को स्मार्टवॉच से जुड़ी अनुमति की ज़रूरत है, तो फ़ोन ऐप्लिकेशन उपयोगकर्ता को स्मार्टवॉच पर भेजता है, ताकि वह अनुमति स्वीकार कर सके. उदाहरण के लिए, अगर फ़ोन के डिसकनेक्ट होने पर संगीत को पहले से लोड करना है, तो स्मार्टवॉच से जुड़ी अनुमति की ज़रूरत होगी. ऐप्लिकेशन का Wearable वर्शन, सिस्टम की अनुमतियों वाले डायलॉग को ट्रिगर करने के लिए, requestPermissions() तरीके का इस्तेमाल करता है.
फ़ोन ऐप्लिकेशन एक साथ कई अनुमतियों का अनुरोध करता है
Android 12 (एपीआई लेवल 31) और इसके बाद के वर्शन पर काम करने वाले पार्टनर ऐप्लिकेशन, स्मार्टवॉच से कनेक्ट होने पर कंपैनियन डिवाइस की प्रोफ़ाइलों का इस्तेमाल कर सकते हैं. प्रोफ़ाइल का इस्तेमाल करने से, रजिस्ट्रेशन की प्रोसेस आसान हो जाती है. ऐसा इसलिए होता है, क्योंकि डिवाइस के टाइप के हिसाब से अनुमतियों के सेट को एक ही चरण में बंडल कर दिया जाता है.
डिवाइस कनेक्ट होने के बाद, बंडल की गई अनुमतियां, कंपैनियन ऐप्लिकेशन को दी जाती हैं. ये अनुमतियां सिर्फ़ तब तक मान्य रहती हैं, जब तक डिवाइस कनेक्ट रहता है. ऐप्लिकेशन को मिटाने या उसे हटाने से, अनुमतियां हट जाती हैं. ज़्यादा जानकारी के लिए, AssociationRequest.Builder.setDeviceProfile() देखें.
अनुमति के अनुरोध से जुड़े पैटर्न
उपयोगकर्ताओं से अनुमतियां मांगने के अलग-अलग पैटर्न होते हैं. प्राथमिकता के क्रम में, ये हैं:
अनुमति तब मांगें, जब किसी सुविधा के लिए अनुमति लेना ज़रूरी हो. हालांकि, पूरे ऐप्लिकेशन को चलाने के लिए अनुमति लेना ज़रूरी न हो.
जब अनुमति का अनुरोध करने की वजह साफ़ तौर पर न बताई गई हो और ऐप्लिकेशन को चलाने के लिए अनुमति ज़रूरी न हो, तो कॉन्टेक्स्ट के हिसाब से जानकारी दें.
इन पैटर्न के बारे में यहां बताया गया है.
कॉन्टेक्स्ट के हिसाब से सवाल पूछना
अनुमतियों का अनुरोध तब करें, जब उपयोगकर्ता को यह साफ़ तौर पर पता हो कि किसी कार्रवाई को पूरा करने के लिए, अनुमति की ज़रूरत क्यों है. उपयोगकर्ता किसी सुविधा के लिए अनुमति तब देते हैं, जब उन्हें पता होता है कि यह सुविधा किस काम के लिए है.
उदाहरण के लिए, किसी ऐप्लिकेशन को आस-पास की दिलचस्पी वाली जगहों को दिखाने के लिए, उपयोगकर्ता की जगह की जानकारी की ज़रूरत पड़ सकती है. जब उपयोगकर्ता आस-पास की जगहें खोजने के लिए टैप करता है, तो ऐप्लिकेशन तुरंत जगह की जानकारी के इस्तेमाल की अनुमति मांग सकता है. ऐसा इसलिए, क्योंकि आस-पास की जगहें खोजने और जगह की जानकारी के इस्तेमाल की अनुमति के बीच साफ़ तौर पर संबंध है. इस रिश्ते के बारे में साफ़ तौर पर पता चलने की वजह से, ऐप्लिकेशन को शिक्षा से जुड़ी अतिरिक्त स्क्रीन दिखाने की ज़रूरत नहीं होती.
कॉन्टेक्स्ट के हिसाब से जानकारी देना
छठी इमेज में, संदर्भ के हिसाब से शिक्षा देने का एक उदाहरण दिखाया गया है. टाइमर शुरू करने के लिए, ऐप्लिकेशन को अनुमतियों की ज़रूरत नहीं होती. हालांकि, इनलाइन शिक्षा से जुड़ी जानकारी देने वाली सूचना से पता चलता है कि गतिविधि का कुछ हिस्सा—जगह की जानकारी का पता लगाना—लॉक है. जब उपयोगकर्ता क्यू पर टैप करता है, तो अनुमति का अनुरोध करने वाली स्क्रीन दिखती है. इससे उपयोगकर्ता को जगह की जानकारी का पता लगाने की सुविधा को अनलॉक करने का विकल्प मिलता है.
shouldShowRequestPermissionRationale()
तरीके का इस्तेमाल करें, ताकि आपका ऐप्लिकेशन यह तय कर सके कि उसे ज़्यादा जानकारी देनी है या नहीं. ज़्यादा जानकारी के लिए, ऐप्लिकेशन की अनुमतियों का अनुरोध करना लेख पढ़ें. इसके अलावा, GitHub पर मौजूद स्पीकर सैंपल ऐप्लिकेशन में, जानकारी दिखाने के तरीके को देखा जा सकता है.
अस्वीकार किए जाने की स्थिति को मैनेज करना
अगर उपयोगकर्ता, किसी ऐसी अनुमति को अस्वीकार करता है जो ऐप्लिकेशन के किसी फ़ंक्शन के लिए ज़रूरी नहीं है, तो उसे उस फ़ंक्शन का इस्तेमाल करने से न रोकें. अगर अनुमति न देने की वजह से, गतिविधि के कुछ हिस्से बंद हो जाते हैं, तो विज़ुअल और कार्रवाई करने लायक फ़ीडबैक दें.
सातवीं इमेज में, लॉक आइकॉन का इस्तेमाल करके यह दिखाया गया है कि कोई सुविधा लॉक है. ऐसा इसलिए है, क्योंकि उपयोगकर्ता ने उसे इस्तेमाल करने की अनुमति नहीं दी है.
जब पहने जाने वाले डिवाइस के लिए अनुमति मांगने वाला डायलॉग बॉक्स, दूसरी बार दिखता है, तो इसमें अस्वीकार करें, फिर से न दिखाएं विकल्प शामिल होता है. अगर उपयोगकर्ता यह विकल्प चुनता है, तो आने वाले समय में इस अनुमति को देने का उसके पास सिर्फ़ एक तरीका होगा. उसे वियरेबल डिवाइस के Settings ऐप्लिकेशन में जाना होगा.
अनुमति न मिलने की समस्या को हल करने के बारे में ज़्यादा जानें.
सेवाओं के लिए अनुमतियां
सिर्फ़ कोई गतिविधि, requestPermissions() तरीके को कॉल कर सकती है. इसलिए, अगर उपयोगकर्ता किसी सेवा का इस्तेमाल करके आपके ऐप्लिकेशन से इंटरैक्ट करता है, तो सेवा को अनुमति का अनुरोध करने से पहले एक गतिविधि खोलनी होगी. उदाहरण के लिए, वॉच फ़ेस के ज़रिए. इस गतिविधि में, यह जानकारी दें कि अनुमति क्यों ज़रूरी है.
आम तौर पर, वॉच फ़ेस के लिए अनुमतियों का अनुरोध न करें. इसके बजाय, कॉम्प्लिकेशन लागू करें और उपयोगकर्ता को यह चुनने दें कि उसे कॉम्प्लिकेशन के ज़रिए कौनसा डेटा दिखाना है.
सेटिंग
उपयोगकर्ता, Wear ऐप्लिकेशन की अनुमतियों को सेटिंग में जाकर कभी भी बदल सकता है. जब उपयोगकर्ता कोई ऐसी कार्रवाई करने की कोशिश करता है जिसके लिए अनुमति की ज़रूरत होती है, तो सबसे पहले checkSelfPermission() तरीके को कॉल करें. इससे यह पता चलेगा कि ऐप्लिकेशन के पास कार्रवाई करने की अनुमति है या नहीं.
इस जांच को तब भी करें, जब उपयोगकर्ता ने पहले अनुमति दी हो. ऐसा इसलिए, क्योंकि हो सकता है कि उपयोगकर्ता ने बाद में अनुमति वापस ले ली हो.
आपके लिए सुझाव
- ध्यान दें: JavaScript बंद होने पर लिंक का टेक्स्ट दिखता है
- रनटाइम अनुमतियों का अनुरोध करना
- ब्लूटूथ ऐक्सेस करने की अनुमतियां
- बैकग्राउंड में बातचीत करना