【问题标题】:How to fix the error Cannot open file, path = '/storage/emulated/0/DCIM/Camera/20200818_123041.jpg' (OS Error: Permission denied, errno = 13)如何修复错误无法打开文件,路径 = '/storage/emulated/0/DCIM/Camera/20200818_123041.jpg'(操作系统错误:权限被拒绝,errno = 13)
【发布时间】:2020-12-08 10:43:50
【问题描述】:

我试图让用户从他们设备上的照片库中挑选一张图片。

我之前的代码运行良好,但现在我必须将 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_handlerflutter 包。

非常感谢任何帮助!

谢谢,杰森。

【问题讨论】:

  • 有任何错误或异常吗?请告诉什么是不工作的。

标签: android flutter dart android-permissions targetsdkversion


【解决方案1】:

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

应用程序请求许可?

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

【讨论】:

    【解决方案2】:

    我最终设法解决了我的问题。我需要在 android manifest 中设置 android:requestLegacyExternalStorage="true",并将 compileSdkVersion 更改为 29(它仍然在 28,即使我已将 targetSdkVersion 更改为 29) - 你必须需要在应用程序中更改两者级别 build.gradle。

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

    【讨论】:

    • 这是一个临时解决方案
    【解决方案3】:

    需要对您的 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

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

    【讨论】:

      猜你喜欢
      • 2021-03-05
      • 2021-07-09
      • 2022-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-14
      • 1970-01-01
      • 2019-11-21
      相关资源
      最近更新 更多