我正在用flutter开发一个移动的应用程序,为此我使用downloads-path-provider获取手机的下载目录,模拟器返回/storage/emulated/0/Download
,并且当我在这个目录下保存文件时,该文件在Download文件夹中可以看到。
但在真实的设备上,它也会返回相同的目录路径。/storage/emulated/0/Download
这对实际设备是否正确?因为在实际设备上,我看不到下载文件夹中保存的文件。
是否有任何解决方案来查找真实的设备上的下载目录?
我正在用flutter开发一个移动的应用程序,为此我使用downloads-path-provider获取手机的下载目录,模拟器返回/storage/emulated/0/Download
,并且当我在这个目录下保存文件时,该文件在Download文件夹中可以看到。
但在真实的设备上,它也会返回相同的目录路径。/storage/emulated/0/Download
这对实际设备是否正确?因为在实际设备上,我看不到下载文件夹中保存的文件。
是否有任何解决方案来查找真实的设备上的下载目录?
4条答案
按热度按时间4ngedf3f1#
path_provider可能很快会进行一些更改,但存在一些未决问题:
https://github.com/flutter/flutter/issues/35783
目前,在Android设备上获取下载路径的最佳方法是用途:
无需。
在Android中获取外部目录路径:
“emulated”一词并不意味着它是模拟器路径,它只是一个命名约定。
确保您具有写入文件的权限,将其添加到manifest.xml文件的〈manifest标记下:
并且还在运行时请求许可。
参见https://pub.dev/packages/permission_handler
5w9g7ksd2#
将此添加到清单:
然后使用这两个软件包:
1.请求存储权限的permission_handler
在pubspec中添加:
那么
则使用以下方法:
l5tcr1uw3#
flutter 3.0+不赞成使用此问题与答案:try this one
一种方法是创建或查找目录,另一种方法是查找路径。
dgenwo3n4#
您可以使用“flutter_file_dialog”来处理此问题,在成功将文件保存到应用程序后,您可以提供此文件包的路径并将其保存到手机的另一个文件夹中,您可以使用以下功能;fromDest是保存文件的路径。