5

मुझे एंड्रॉइड 6 रनटाइम अनुमति के बारे में प्रश्न हैं। यदि उपयोगकर्ता गैलरी से फोटो चुनना चाहता है, तो क्या हमें READ_EXTERNAL_STORAGE अनुमति मांगनी चाहिए? ऐसा लगता है कि मैं गैलरी तक पहुंच सकता हूं भले ही मैं स्टोरेज अनुमति बंद कर दूं। धन्यवाद।एंड्रॉइड 6 रनटाइम अनुमति।

उत्तर

4

आपको READ_EXTERNAL_STORAGE के लिए पूछने की आवश्यकता है। आप इसके बिना गैलरी तक पहुंच पाएंगे, लेकिन यदि आप मीडिया के साथ कुछ भी करना चाहते हैं तो आपको गैलरी से मिलता है, आपको पढ़ने की अनुमति की आवश्यकता होगी।

अनुमति इनकार: पढ़ने com.android.providers.media.MediaProvider uri सामग्री: // मीडिया/बाहरी

क्या एक छवि के बाद onActivityResult में क्या होता है पर एक त्वरित परीक्षण प्रपत्र गैलरी उठाया कर दिया गया है/पीआईडी ​​= 8405, यूआईडी से छवियों/मीडिया = 10,177 अगर आप एंड्रॉयड 6.0 या above.This उपयोग कर रहे हैं android.permission.READ_EXTERNAL_STORAGE, या grantUriPermission()

0

कस्टम, आप क्रम अनुमति का उपयोग कर सकते अनुमति के लिए की आवश्यकता है कोड आपकी मदद कर सकता है।

अपने अनुप्रयोग है पहले से ही अनुमति इसकी आवश्यकता नहीं है तो ऐप्लिकेशन कॉल requestPermissions में से एक() पद्धतियों उचित अनुमतियों का अनुरोध करने चाहिए। आपका ऐप अपनी इच्छित अनुमतियों को पास करता है, और भी एक पूर्णांक अनुरोध कोड जिसे आप इस अनुमति अनुरोध की पहचान करने के लिए निर्दिष्ट करते हैं। यह विधि अतुल्यकालिक रूप से कार्य करती है: यह तुरंत लौटाता है, और उपयोगकर्ता संवाद बॉक्स का जवाब देने के बाद, सिस्टम उसी अनुरोध कोड को पारित करने वाले अनुरोध कोड के साथ ऐप की कॉलबैक विधि को कॉल करता है, जिसे ऐप अनुरोध पर पारित किया गया है।

// Here, thisActivity is the current activity 
if (ContextCompat.checkSelfPermission(thisActivity, 
       Manifest.permission.READ_CONTACTS) 
     != PackageManager.PERMISSION_GRANTED) { 

    // Should we show an explanation? 
    if (ActivityCompat.shouldShowRequestPermissionRationale(thisActivity, 
      Manifest.permission.READ_CONTACTS)) { 

     // Show an explanation to the user *asynchronously* -- don't block 
     // this thread waiting for the user's response! After the user 
     // sees the explanation, try again to request the permission. 

    } else { 

     // No explanation needed, we can request the permission. 

     ActivityCompat.requestPermissions(thisActivity, 
       new String[]{Manifest.permission.READ_CONTACTS}, 
       MY_PERMISSIONS_REQUEST_READ_CONTACTS); 

     // MY_PERMISSIONS_REQUEST_READ_CONTACTS is an 
     // app-defined int constant. The callback method gets the 
     // result of the request. 
    } 
}  

To Know more about runtime permission

https://developer.android.com/training/permissions/requesting.html

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