如何修复错误无法打开文件,路径='/storage/emulated/0/DCIM/Camera/20200818_123041.jpg'操作系统错误:权限被拒绝,errno = 13

问题描述

我正在尝试允许用户从其设备上的照相馆中选择图像。

我之前的代码工作正常,但是现在我必须将targetSdkVersion从28更新为29,不再起作用。

我尝试添加

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

但仍然无法正常工作。还尝试使用permission_handler Flutter软件包。

非常感谢您的帮助!

谢谢杰森。

解决方法

如果您使用permission_handler并且写道: if (!status.isGranted) { await Permission.storage.request(); }

应用程序需要许可吗?

您可以在print语句之前,条件中和if语句之后编写if

,

我最终解决了我的问题。我需要在Android清单中设置android:requestLegacyExternalStorage="true",并将compileSdkVersion也更改为29(即使我将targetSdkVersion更改为29,它也仍然是28)-您必须在应用程序级别build.gradle中进行更改。

希望这对某人有帮助,很高兴我解决了这个问题!

,

需要对您的android清单文件授予权限。

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

And also use this for flutter

按照上面的链接执行所有步骤。