java.io.FileNotFoundException: open failed: EPERM (Operation not permitted)

来项目相机拍照之后照片无法获取到,然后报错
java.io.FileNotFoundException: open failed: EPERM (Operation not permitted)

原因:项目sdk升级,导致文件创建失败

Android10以前图片直接可以保存在sd卡中,从10开始新增了沙盒机制,数据只能保存在app的目录下面。但是Android10做了兼容,

在AndroidManifest.xml中增加android:requestLegacyExternalStorage=“true”就可以在sd下面进行文件操作了。

但是sdk升级到Android11之后该方法失效,文件创建失败 ,然后报错

解决方案:

在app目录下面创建文件

if (Build.VERSION.SDK_INT >29){
            file = new File(context.getExternalFilesDir(null).getAbsolutePath() + "/photo.png");
        }else {
           file =  new File(Environment.getExternalStorageDirectory().getPath() + "/photo.png");
        }

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值