How to fix the error Cannot open file, path = '/storage/emulated/0/DCIM/Camera/20200818_123041.jpg' (OS Error: Permission denied, errno = 13)

How to fix the error Cannot open file, path = '/storage/emulated/0/DCIM/Camera/20200818_123041.jpg' (OS Error: Permission denied, 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(); }

应用程序请求权限?

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

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

更改两者

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

Need to give permission on your android manifest file.

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

And also use this for flutter

Follow all steps as per above link.