当前位置:   article > 正文

Android程序报错:Anroid 6.0 权限问题java.io.FileNotFoundException: ……:open failed: EACCES (Permission denied)_file not found: open failed: eacces (permission de

file not found: open failed: eacces (permission denied)

异常

java.io.FileNotFoundException: /storage/emulated/0/Video/ekwing_main_paren.apk(你的文件路径): open failed: EACCES (Permission denied)

原因

Android 6.0 中,有些权限属于 Protected Permission,这类权限只在 AndroidManifest.xml中声明是无法真正获取到的,还需要再代码中动态获取,使权限许可弹出对话框,用户点击“允许”后,方可真正获得此权限。

解决方法一

在代码中添加以下代码,如下

  1. /**
  2. * 动态获取权限,Android 6.0 新特性,一些保护权限,除了要在AndroidManifest中声明权限,还要使用如下代码动态获取
  3. */
  4. if (Build.VERSION.SDK_INT >= 23) {
  5. int REQUEST_CODE_CONTACT = 101;
  6. String[] permissions = {Manifest.permission.WRITE_EXTERNAL_STORAGE};
  7. //验证是否许可权限
  8. for (String str : permissions) {
  9. if (this.checkSelfPermission(str) != PackageManager.PERMISSION_GRANTED) {
  10. //申请权限
  11. this.requestPermissions(permissions, REQUEST_CODE_CONTACT);
  12. return;
  13. }
  14. }
  15. }

解决方法二

如果不写以上代码,还可以用另外一种简单简单粗暴的方式:直接在6.0的设置里面找到应用,选中你的APP->权限->打开存储空间权限

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/537974
推荐阅读
相关标签
  

闽ICP备14008679号