我的最终目标是允许用户选择一个文件夹来保存文件 - 该文件是一个视频文件,将在用户选择目标后的某个时间点创建。
我只是使用存储访问框架选择器来允许他们选择要保存的位置。
首先,有没有办法让用户只选择一个文件夹(而不是文件/文件名)?
我现在能做的最好的事情是使用ACTION_CREATE_DOCUMENT
Intent 来获取保存位置,但是我真的不想在 SAF 选择器中指定文件名(这将在应用程序中完成)......
其次,在阅读了存储访问框架文档,并从一些 代码 示例中拼凑了一些位之后,我得到了一个可以工作的 DocumentsProvider,它几乎可以满足我的需求 - 即允许用户浏览他们的外部存储(SD 卡)用于保存视频文件的合适位置的目录 - 通过添加我自己的指向Environment.getExternalStorageDirectory()
queryRoots() 方法的根目录。
但是,我真正想要的是让它成为我唯一的根(目前我还拥有 Drive、Downloads 等)。
是否可以删除/隐藏其他根,使其本质上成为特定于应用程序的文件选择器?
或者甚至只显示本地存储(也许Root.FLAG_LOCAL_ONLY
标志可以帮助)?
谢谢!