【问题标题】:Failed to Save Files on Storage [FileSystemException] Flutter无法在存储中保存文件 [FileSystemException] Flutter
【发布时间】:2022-09-27 18:13:15
【问题描述】:

我在Play商店上传了一个Android照片压缩应用程序,我检查了一切正常,但是有些用户有这个应用程序无法保存压缩照片的问题,我检查了一下,我发现了这个错误

[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: FileSystemException: Cannot create file, path = \'/storage/emulated/0/My Folder/photo.jpg\' (OS Error: Operation not permitted, errno = 1)

这是权限AndroidManifest.xml

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

应用程序标签内的这一行

android:requestLegacyExternalStorage=\"true\"

我寻找了一些解决方案并建立了这个许可行

<uses-permission android:name=\"android.permission.MANAGE_EXTERNAL_STORAGE\"
        tools:ignore=\"ScopedStorage\" />

但是当请求这个权限时,android向用户显示警告应用程序将访问所有文件而无需请求权限,我觉得这让用户担心,有些人可能害怕这个权限,但是我上传了应用程序但它被拒绝了,因为使用@ 987654327@ 许可。

  • 你试过实现这个包吗? pub.dev/packages/permission_handler 它将处理所有事情.. 遵循文档
  • 什么是 Android 版本的设备给出了这个错误?对于所有 Android 11+ 设备来说,这都是正常的。
  • 在公共文档目录中创建您的文件夹,错误就会消失。
  • @Danny我正在使用permission_handler 向用户询问权限,但正如我所说的,前面的错误显示了。
  • @blackapps 据我所知,错误出现在以下系统中:Android 11 和 12

标签: android flutter file permissions storage


【解决方案1】:

关于MANAGE_EXTERNAL_STORAGE 许可,您是对的。如果您没有正当理由,您的应用将从 Play 商店中删除。您可能需要创建一个视频并解释为什么需要这些权限,以及范围存储如何无法帮助您。

现在,您应该知道您正在尝试直接在内部存储中创建文件夹的一件事。这将在较低的 android 版本中工作,但在 Android 10 或更高版本中即使您已授予 WRITE_EXTERNAL_STORAGE 也会失败。

尝试在下载或文档等公共目录中创建文件。如果下载的文件不需要用户访问,那么您可以随时保存在您的包文件夹中context.getExternalFilesDir(null)

希望这对您有所帮助!如果您还有任何疑问,请随时在下面发表评论。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-18
    • 2020-01-30
    • 1970-01-01
    • 2019-01-23
    • 2014-02-14
    • 2020-09-23
    • 2021-09-19
    相关资源
    最近更新 更多