在Android 6.0及以上版本中,因为引入了运行时权限,系统应用需要动态请求权限才能访问受保护的文件或目录。
如果您在系统应用中遇到了'open failed: EACCES (Permission denied)”错误,您可以按照以下步骤进行解决:
您可以通过以下代码请求存储权限:
if (ContextCompat.checkSelfPermission(this,
Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
MY_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE);
}
在您的系统应用中,您需要检查是否已被授予存储权限。您可以使用以下代码检查权限:
if (ContextCompat.checkSelfPermission(this,
Manifest.permission.WRITE_EXTERNAL_STORAGE)
== PackageManager.PERMISSION_GRANTED) {
// 您已被授予存储权限
} else {
// 您尚未被授予存储权限
}
在您的应用中,您需要在清单文件中声明您需要的权限。例如,如果您需要写入外部存储器,您需要声明WRITE_EXTERNAL_STORAGE权限。以下是一个例子:
通过这些步骤,您应该能够解决'open failed: EACCES (Permission denied)”错误。