Android8.0创建文件夹失败

最近在做Target26的适配,一直使用的的是Android7的系统开发。
在Android7上一切都运行的很好,但在Android8.0的手机上却出现了崩溃。查看了log,发现是创建文件夹时失败了,导致后面写文件的时候找不到路径。
最后发现原来8.0系统如果要创建文件夹的话,必须申请写的权限,本来读写是一个权限组,申请了读的权限,写的权限也就申请了。不知道8.0系统修改了这个机制是出于什么目的······,大家遇到这个问题是不是跟我一样的想法。其实是我们理解有偏差。
照官方的说法是,在8.0之前的系统,只要申请了同一权限组的任意权限,其它权限也都自动授权了。而在8.0的系统上修复了该问题,改成了只要申请了同一权限组的任意权限,其他权限在申请时也会自动授权。在8.0的系统中在使用WRITE_EXTERNAL_STORAGE时还是需要申请权限,只是不提示给用户,而是自动授权。可能是官方觉得这样更符合开发规范吧。
系统内心独白:虽然我可以允许你使用申请了权限的权限组中的其它权限,但是你还是需要告诉我你要使用该权限,我才能自动给你授权。
所以如果就需要判断一下,如果是8.0的系统以上,需要再申请一下Write权限。

    if (Build.VERSION.SDK_INT >= 26 && checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)
     != PackageManager.PERMISSION_GRANTED) {
        requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值