Android open failed: ENOENT (No
2017-05-03 本文已影响96人
孙科技
以Android open failed: ENOENT (No such file or directory)为列,分析android 6.0 以上的动态权限
在Android6.0以下所有的权限需要使用时在清单配置中就可以了,但自从Android6.0以后,Android就为权限分为了
normal:这个权限类型并不直接威胁到用户的隐私,可以直接在manifest清单里注册,系统会帮我们默认授权的。
dangerous:这个可以直接给app访问用户一些敏感的数据,不仅需要在manifest清单里注册,同时在使用的时候,需要向系统请求授权。
所以说我们新建文件时光在Manifest清单是配置是不够的,会闪退包上述错误!
解决方案:就是在需要时新建文件时获取文件读取的动态权限
intpermission = ActivityCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE);
if(permission != PackageManager.PERMISSION_GRANTED) {
// We don't have permission so prompt the user
ActivityCompat.requestPermissions(
activity,
PERMISSIONS_STORAGE,
REQUEST_EXTERNAL_STORAGE
);
}