安卓Bug之Unable to decode stream: java.io.FileNotFoundException: ****(Permission denied)

安卓Bug之Unable to decode stream: java.io.FileNotFoundException: ****(Permission denied)

AndroidManifest.xml 赋予权限了

    <uses-permission android:name="android.permission.CAMERA"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

Activity 也动态赋予权限

if (ContextCompat.checkSelfPermission(Objects.requireNonNull(this), Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(Objects.requireNonNull(this), new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 222);
        }

控制台报错

Unable to decode stream: java.io.FileNotFoundException: ****(Permission denied)

解决办法

在 AndroidManifest.xml文件里的application标签下加

android:requestLegacyExternalStorage="true"

扩展

ps:以下信息来源就差android:requestLegacyExternalStorage=“true“那点事

针对 

targetSdkVersion >= 29
此时需要检查创建文件夹的代码是否是  Environment.getExternalStorageDirectory()

如果是的话,那么就必须换掉了,哪怕,你配置了  android:requestLegacyExternalStorage="true" ,可以换成  Context.getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS)
————————————————
版权声明:本文为CSDN博主「放空di自己」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wqs1028/article/details/113618069

这里可以看评论,Environment.getExternalStorageDirectory()这个方法还是可以使用的

android --------- Android10系统上访问本地相机下的视频文件报错 /storage/emulated/0/DCIM/Camera/ open failed: EACCES

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值