佛一脚 2016-05-24 13:43 采纳率: 40%
浏览 44114
已采纳

android 中添加了读写文件的权限,却报(Permission denied)错误

android 中添加了读写文件的权限,却报open failed: EACCES (Permission denied)
太坑人了!
添加了权限




    //代码部分:
    File file2 = new File(Environment.getExternalStorageDirectory(),"file2.txt");
    file2.setWritable(true);
    file2.setReadable(true);
            FileOutputStream fos = new FileOutputStream(file2);
    fos.write("nihao world".getBytes());

            报错

            java.io.IOException: open failed: EACCES (Permission denied)

com.example.testfile W/System.err: at java.io.File.createNewFile(File.java:939)
com.example.testfile W/System.err: at com.example.testfile.MainActivity.createFile(MainActivity.java:31)
图片说明

  • 写回答

11条回答 默认 最新

  • 徐乐乐乐 2016-07-01 00:18
    关注

    安卓6.0以上即使添加了权限也不会自动授权,需要在用权限的时候进行动态获取权限,要么把sdk调到22

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • 飘绪 2017-04-07 01:56
    关注

    需要加入运行时权限,代码如下
    if (ActivityCompat.checkSelfPermission(mContext, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
    ActivityCompat.requestPermissions((BaseActivity) mContext, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},1);
    }

    评论
  • hardWork_yulu 2018-06-21 02:45
    关注

    权限都申请的话,如果是USB连接到电脑上测试,而且USB选择的是Mediea,请拔掉USB线,再重启App

    评论
  • 佛一脚 2016-05-24 13:44
    关注

    图片说明

    评论
  • 佛一脚 2016-05-24 13:45
    关注

    图片说明
    什么权限都添加了,难道还有什么权限吗?

    评论
  • jian_cheng_90 2016-05-24 16:51
    关注

    使用真机调试手机连接进入后会一个usb数据存储开关,软件读写不了SD卡的。

    评论
  • 恋恋西风 2016-05-24 23:59
    关注

    理论上是可以好,换个手机试下

    评论
  • gongxinifacai 2016-05-25 06:45
    关注


    这两个权限添加了吗
    添加的位置对吗

    评论
  • trycatch__ 2016-05-25 07:55
    关注

    除了权限 还要判断 版本号 api 19以下 和19以上 要在 sd卡 的 data/data/包名/cache下写 文件 6.0的就不能在sd卡写东西 还有手机厂商 要是公司的应用你就多判断一下

    评论
  • 佛一脚 2018-09-12 08:08
    关注

    时过多年没想到这个问题还有人回答,自己回答一下,关于权限问题,6.0以后,除了在AndroidManifest.xml文件中申明需要的权限,还需要在代码动态申请,目前在代码中我用的动态申请权限工具是RxPermission
    代码:请求定位权限:Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.ACCESS_COARSE_LOCATION
    这两个权限需要申明在代码,AndroidManifest文件中。**_两次_**

                     new RxPermissions(this)
                            .request(Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.ACCESS_COARSE_LOCATION)
                            .subscribe(new Consumer<Boolean>() {
                                @Override
                                public void accept(Boolean grant) throws Exception {
                                    if(!grant){
                                        Toast.makeText(LoginActivity.this,"获取定位权限失败,无法加载地图",Toast.LENGTH_SHORT).show();
                                    }
                                }
                            });
    
    评论
  • bake_ 2018-09-13 02:39
    关注

    为什么清单文件填了权限,动态申请也申请了,手机设置里面查看app的权限确实也允许了,为什么还包这个Permission denied 创建文件夹没权限,
    完了

    评论
查看更多回答(10条)

报告相同问题?

悬赏问题

  • ¥15 写出完整实验代码在codblocks中
  • ¥15 express连接mssql,每条额外附加了语句
  • ¥20 IQOO12如何有效ADB方法
  • ¥15 ios如何获取用户的订阅情况
  • ¥15 复杂表达式求值程序里的函数优先级问题
  • ¥15 求密码学的客成社记ji着用
  • ¥35 POI导入树状结构excle
  • ¥15 初学者c语言题目解答
  • ¥15 div editable中的光标问题
  • ¥15 mysql报错1415Not allowed to return a result set from a trigger 不知如何修改