12

एंड्रॉइड 6.0 अनुमति प्रणाली का उपयोग करने के लिए मेरे ऐप्स में से किसी एक को माइग्रेट करते समय, मुझे एमुलेटर का उपयोग करके अनुमतियों को डीबग करना बहुत मुश्किल लगता है।एंड्रॉइड 6.0 अनुमतियों को डीबग/रीसेट कैसे करें?

निष्कर्ष:

  • ऐप्स की जानकारी स्क्रीन में एक अनुमति अक्षम करना नहीं अपने लिए अनुमति संवाद फिर से दिखाता है जब requestPermissions() पद्धति का उपयोग करके।
  • ऐप को पुनर्स्थापित करना ऐप को अनुदान अनुमति संवाद को फिर से दिखाने का एकमात्र तरीका प्रतीत होता है।

Android एमुलेटर का उपयोग करके अनुमति को डीबग करने का उचित तरीका क्या है?

+0

कोई भी शैल स्क्रिप्ट का उपयोग करने में रुचि रखने वाले किसी भी व्यक्ति को https://gist.github.com/nitiwari-dev/90df91e3eb21864ca711b271e071b77b – nitesh

उत्तर

20

एंड्रॉइड 6.0 अनुमतियों को डीबग करना वास्तव में बहुत आसान है। आप के लिए वर्तमान अग्रभूमि एप्लिकेशन सभी क्षुधा निम्नलिखित एडीबी खोल आदेश का उपयोग "स्थापित राज्य" करने के लिए अनुमतियों को रीसेट कर सकते हैं:

adb shell pm reset-permissions 

नोट: वर्तमान में आप क्रम अनुमतियों को रीसेट नहीं कर सकते एक विशिष्ट पैकेज के लिए, पैकेज मैनेजर (पीएम) टूल सेक्शन सेक्शन में कहा गया है:

सभी रनटाइम अनुमतियों को उनके डिफ़ॉल्ट स्थिति में वापस लाएं।

आप आसानी से एंड्रॉइड स्टूडियो में टर्मिनल इंटरफेस का उपयोग कर reset-permissions कमांड निष्पादित कर सकते हैं। ध्यान दें कि एडीबी कमांड केवल तभी काम करता है जब एडीबी निर्देशिका को पाथ सिस्टम पर्यावरण चर में जोड़ा जाता है (देखें: add ADB to path variable)।

तुम भी रीसेट कर सकते हैं/का उपयोग कर एक विशिष्ट अनुमतियों को रद्द:

adb shell pm revoke com.your.package android.permission.WRITE_EXTERNAL_STORAGE 

इस आदेश की एक नकारात्मक पक्ष यह है कि यह अपने अनुप्रयोग को पुनः आरंभ करेगा, लेकिन यह सभी ऐप्स के लिए क्रम अनुमतियों को रीसेट नहीं है। अनुमति देने के लिए revokegrant के साथ प्रतिस्थापित करें।

+1

का संदर्भ दे सकता है, यह शायद ही कभी "नकारात्मक" है - यह वही तरीका है जो काम करने के लिए डिज़ाइन किया गया है! यदि किसी ऐप के लिए अनुमतियां बदली जाती हैं, आमतौर पर सेटिंग्स UI के माध्यम से की जाती हैं, तो ऐप पुनरारंभ होता है (ताकि इसे बदले गए अनुमतियों की जांच करने का मौका मिले) – zmarties

+0

सच है! लेकिन यह उल्लिखित अन्य आदेश के विपरीत एक नकारात्मक पक्ष है। क्योंकि वह आदेश ऐप को पुनरारंभ नहीं करता है। –

+1

तथ्य यह है कि रीसेट-अनुमति ऐप को मार नहीं देती है, एक बग के रूप में उठाया जाता है - https://code.google.com/p/android/issues/detail?id=195087 – zmarties

संबंधित मुद्दे