检查权限总是返回被拒绝

时间:2021-04-06 23:27:45

标签: android kotlin android-permissions

我是通过以下声明请求 WRITE_EXTERNAL_STORAGE 许可

ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE), PERMISSION_WRITE)

这一直有效......直到现在。在方法onRequestPermissionsResult中,grantResults总是包含-1

override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<String?>, grantResults: IntArray) {
    
    super.onRequestPermissionsResult(requestCode, permissions, grantResults)
    if (requestCode == PERMISSION_WRITE) {
        if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) {

            Timber.i("PERMISSION GRANTED")
        } else {

            showSettingsDialog()
        }
    }
}

另外,我在清单中有使用权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

问题是,如果我转到应用程序设置,权限显示为已授予,但从应用程序返回的权限始终未授予。

我尝试删除构建文件夹,因为没有任何更改,这可以正常工作一周

知道我可以测试什么吗?

最好的问候

1 个答案:

答案 0 :(得分:2)

这似乎是 android 10 中的一个错误,因此您可以将清单中的权限替换为:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:node="replace"/>