我在清单中指定了WRITE_EXTERNAL_STORAGE权限,在应用程序中,当我调用requestPermissions时,grantResult返回-1,表示未授予权限。但是,在应用程序的“设备设置”中,“存储”权限显示为“开”。该应用程序不会让我写,但是。为什么授予请求失败,就应用程序而言,权限被拒绝,但在“设置”中显示为正常?
requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE}, PICK_FROM_GALLERY);
.
.
.
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, RESULT_LOAD_IMAGE);
} else {
//THIS IS WHERE I END UP WITH grantResults == -1
}
答案 0 :(得分:0)
我找到了答案。显然,我从第三方库获取的某些东西导致清单合并。通过添加以下内容:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:node="replace"/>
我的问题消失了。
答案 1 :(得分:0)
当我注意到清单中的许可中有一个空格时,我的案件可以对某人有所帮助,它是<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE "/>
,我将其更改为<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
并解决了问题。没有其他变化。