एंड्रॉइड एप्लिकेशन की मुख्य गतिविधि में मैं अनुमतियों की जांच करता हूं (Manifest.permission.MANAGE_DOCUMENTS
), पता लगाएं कि मेरे पास नहीं है, और requestPermisions
पर कॉल करें। फिर onRequestPermissionResult
में मुझे लगभग एक संवाद के बिना तुरंत अस्वीकार कर दिया जाता है।एंड्रॉइड अनुमति स्वचालित रूप से अनुरोध पर अस्वीकार कर दी गई मुख्यधारा से
मैं पहले से ही (जो काम करता है requestPermissions
फिर से के माध्यम से,) एक ही एप्लिकेशन के किसी अन्य गतिविधि में एक ही अनुमति की पुष्टि की, इसलिए मैं उम्मीद यह निर्णय संग्रहीत करने के लिए किया जा (सत्र के लिए, या जो कुछ भी), और मैं कभी नहीं का चयन किया है अनुमति से इनकार करने के लिए। किसी भी तरह से, अनुमति संवाद प्रदर्शित नहीं होता है और अनुमति स्वचालित रूप से अस्वीकार कर दी जाती है।
अब तक मैंने एंड्रॉइड 7 और 6 (एपीआई 24 और 23) के अनुकरणकर्ताओं पर इसका परीक्षण किया है।
मैं कोशिश की है:
- एप्लिकेशन के डेटा संग्रह को साफ़ करके और वाइप, तो यह इस onRequestPermissionsResult returns immediately with denied permission देखने के बाद निश्चित रूप से
- नहीं इस Getting permission denied on Android M
- ट्रिपल जाँच की वर्तनी ताजा है और मैं बोल रहा हूँ सुपर विधि
- ढेर अतिप्रवाह पर अन्य सुझावों का एक समूह
private fun askForPermissionOrSendRequest(view: View, permission: String) {
if (checkSelfPermission(permission) == PackageManager.PERMISSION_DENIED) {
if (shouldShowRequestPermissionRationale(permission)) {
cachedView = view
val explanationDialog = AlertDialog.Builder(this).setMessage("We need permissions to read your storage in order to show your profile image.").setOnDismissListener {
requestPermissions(
arrayOf(permission),
BSMainActivity.permissionRequestSendProfilePic
)
}.create()
explanationDialog.show()
} else {
cachedView = view
// this branch is always hit - the permission seems to be missing every time
requestPermissions(
arrayOf(permission),
BSMainActivity.permissionRequestSendProfilePic
)
}
} else {
sendRequest(view)
}
}
मैं तुरंत मुझे अनुमतियों के लिए पूछने के लिए दिख रहा एक संवाद के बिना परिणाम हैंडलर के लिए मिलता है:मैं बहुत स्टंप्डया हूँ ...
यहाँ अनुमति अनुरोध (कोड में टिप्पणी देखें) । मैं एक ही ऐप की दूसरी (बच्चे) गतिविधि में एक ही अनुमति की पुष्टि कर सकता हूं या नहीं (ऐसा कोई फर्क नहीं पड़ता)।
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="me.monomon.bs">
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.MANAGE_DOCUMENTS"/>
लेकिन फिर कैसे हो 'intent.addFlags (Intent.FLAG_GRANT_READ_URI_PERMISSION)' – RecencyEffect
यह एक पूरी तरह से अलग सवाल होगा के रूप में एक इरादे से चयनित फ़ाइलों को पढ़ने के लिए चाहिए क्षुधा। अगर आपको यूआरआई अनुमति पढ़ी जाती है, तो आप एक्सेस करने के लिए [openInputStream] (https://developer.android.com/reference/android/content/ContentResolver.html#openInputStream (android.net.Uri)) को कॉल कर सकते हैं चुनी हुई फाइल की सामग्री। – ianhanniballake
मुझे इंटरनेट अनुमति के साथ एक ही समस्या का सामना करना पड़ रहा है ... मैं इसे कैसे संभाल सकता हूं? @ianhanniballake –