【问题标题】:How can I contribute files to MediaStore (SDK 29) on Android 10 in Flutter?如何在 Flutter 中向 Android 10 上的 MediaStore (SDK 29) 贡献文件?
【发布时间】:2020-09-02 05:43:27
【问题描述】:

我想将文件保存到 Android 使用的下载文件夹作为默认下载目录。我发现使用MediaStore.downloads 应该可以做到这一点,但我不知道如何在颤抖中做到这一点! 使用时

List<Directory> android_dir =
        await getExternalStorageDirectories(type: StorageDirectory.downloads);
    String android_path = android_dir[0].path;

从 path_provider 包中,我似乎获得了指向我的应用程序特定目录的路径

/storage/emulated/0/Android/data/com.mediaconverter/files/Download/

用户似乎无法通过文件浏览器应用轻松访问。

由于 Android 10 正在弃用 ExtStorage 包中的 ExtStorage.getExternalStoragePublicDirectory,我试图找到一种方法来完成保存用户可以轻松访问的文件。这是我要定位的文件夹:

我怎样才能做到这一点?这些文件似乎是在上述目录中创建的,但我无法通过其他应用程序访问它们。

我对 Android 开发还比较陌生,所以对于这个可能很愚蠢的问题,我很抱歉......我无法通过阅读其他问题和谷歌搜索找到答案:/

【问题讨论】:

    标签: android file flutter path storage


    【解决方案1】:

    查看path provider

    Directory documentsdir = await getApplicationDocumentsDirectory();
    

    这将为您提供一个可访问的目录。

    【讨论】:

    • 我上下阅读了 path_provider 示例,但似乎无法掌握它,抱歉......我可以在文件系统(或者更确切地说是在本机文件浏览器应用程序)中找到getApplicationDocumentsDirectory() 提供的目录?我当然可以打印路径,但是我在Android的UI中找不到文件!
    • 是的,在android上很难找到文件,我帮你看看,我主要用IOS
    • 在 iOS 上,它使用 getApplicationDocumentsDirectory 完美运行,但在 Android 上,文件似乎无法通过 Files App 的等效项访问,因此我的问题和想法是使用公共下载目录因为这很容易被用户找到......
    【解决方案2】:

    Flutter 的 path_provider API 由于 Android 10 及更高版本的 Android 更改而遇到问题(未解决的问题)。这应该是固定的 -

    https://github.com/flutter/flutter/issues/35783

    目前,通过flutter获取iOS/AndroidDownload目录最可靠的方法似乎是这样-

      String dir;
      if(Platform.isAndroid) {
        dir = "/storage/emulated/0/Download/"; //not elegant, but it works
      }else if(Platform.isIOS) {
        dir = (await getDownloadsDirectory()).path;
      }
      print(dir);
    

    希望这会有所帮助。

    【讨论】:

    • 安全吗? /storage/emulated/0/Download/ 如果可以访问下载,那么也可以访问 0/ 下的其他文件夹。和 app 目录大多位于 ../0/Android/ 下。
    猜你喜欢
    • 2011-12-08
    • 2016-07-14
    • 1970-01-01
    • 2012-07-29
    • 2019-10-02
    • 2020-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多