如何将文件提交到Flatter中Android 10上的MediaStore(SDK 29)?

如何将文件提交到Flatter中Android 10上的MediaStore(SDK 29)?,android,file,flutter,path,storage,Android,File,Flutter,Path,Storage,我想将文件保存到Android使用的下载文件夹,作为默认下载目录。我发现这应该可以通过使用实现,但我不知道如何在颤振中做到这一点! 使用时 List<Directory> android_dir = await getExternalStorageDirectories(type: StorageDirectory.downloads); String android_path = android_dir[0].path; 列出android\u目录= 等待

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

List<Directory> android_dir =
        await getExternalStorageDirectories(type: StorageDirectory.downloads);
    String android_path = android_dir[0].path;
列出android\u目录=
等待GetExternalStorageDirectory(类型:StorageDirectory.downloads);
字符串android\u path=android\u dir[0]。路径;
从path_provider包中,我似乎获得了一个指向特定于应用程序的目录的路径

/存储/仿真/0/Android/data/com.mediaconverter/files/Download/

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

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

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

我对Android开发还比较陌生,所以提前为这个可能很愚蠢的问题道歉。。。通过阅读其他问题和谷歌搜索,我找不到答案:/

查看

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

签出


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

flatter的
path\u提供程序
API由于Android 10及以上版本的Android更改而遇到问题(未解决问题)。这应该是固定的-

目前,通过Flatter获取iOS/Android
下载
目录的最可靠方法似乎是-

  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);

希望这能有所帮助。

flatter的
path\u提供程序
API因Android 10及以上版本的Android更改而遇到问题(未决问题)。这应该是固定的-

目前,通过Flatter获取iOS/Android
下载
目录的最可靠方法似乎是-

  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);

希望这能有所帮助。

我上下阅读了path\u provider示例,但似乎无法理解,抱歉。。。在文件系统中(或者更确切地说在本机文件浏览器应用程序中)哪里可以找到getApplicationDocumentsDirectory()提供的目录?我当然可以打印路径,但在Android的UI中找不到文件!是的,在android上很难找到文件,我会帮你查一下,我主要使用iOS操作系统,使用getApplicationDocumentsDirectory可以很好地工作,但在android上,文件似乎无法通过文件应用程序的aquivalent访问,因此,我的问题和想法是使用公共下载目录,因为用户很容易找到它…我上下阅读了path_provider示例,似乎无法理解它,抱歉。。。在文件系统中(或者更确切地说在本机文件浏览器应用程序中)哪里可以找到getApplicationDocumentsDirectory()提供的目录?我当然可以打印路径,但在Android的UI中找不到文件!是的,在android上很难找到文件,我会帮你查一下,我主要使用iOS操作系统,使用getApplicationDocumentsDirectory可以很好地工作,但在android上,文件似乎无法通过文件应用程序的aquivalent访问,因此,我的问题和想法是使用公共下载目录,因为它很容易被用户找到……对我不起作用:(它安全吗?
/storage/emulated/0/Download/
如果可以访问下载,那么也可以访问0/下的其他文件夹。而应用程序目录大多位于
。/0/Android/
下。对我不起作用:(安全吗?
/storage/emulated/0/Download/
如果可以访问下载,那么也可以访问0/下的其他文件夹。应用程序目录大多位于
。/0/Android/
下。