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

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条回答 默认 最新

  • u013475663
    徐乐乐乐 2016-07-01 00:18
    已采纳

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

    点赞 评论
  • u010783377
    飘绪 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);
    }

    点赞 4 评论
  • qwe1314225
    佛一脚 2016-05-24 13:44

    图片说明

    点赞 评论
  • qwe1314225
    佛一脚 2016-05-24 13:45

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

    点赞 评论
  • riskychengallesgut
    jian_cheng_90 2016-05-24 16:51

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

    点赞 评论
  • q610098308
    恋恋西风 2016-05-24 23:59

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

    点赞 评论
  • gongxinifacai
    gongxinifacai 2016-05-25 06:45


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

    点赞 评论
  • u011547373
    trycatch__ 2016-05-25 07:55

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

    点赞 评论
  • hardWork_yulu
    hardWork_yulu 2018-06-21 02:45

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

    点赞 评论
  • qwe1314225
    佛一脚 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();
                                    }
                                }
                            });
    
    点赞 评论
  • tan6458
    bake_ 2018-09-13 02:39

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

    点赞 评论

相关推荐