首页 > 解决方案 > 检查权限总是返回被拒绝

问题描述

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" />

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

我尝试删除构建文件夹,因为没有任何变化,而且这工作正常一周

关于我可以测试什么的任何想法?

此致

标签: androidkotlinandroid-permissions

解决方案


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

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

推荐阅读