Android 问:我可以设置一次默认目录并在没有文件选择器的情况下保存文件吗?

Android Q: Can I set the default directory once and save files without file picker?

我有一个关于在 Android 中保存文件的问题 Q. 据我了解,如果我想将文件保存到 public 目录并希望其他人可以访问它我需要使用存储访问框架和 Android 的文件选择器的应用程序。我可以在首选项屏幕中设置一次保存文件的目录,而不必每次保存文件时都选择目录吗?

提前致谢。

我认为 Android 10 Q beta 无法做到这一点。

您可以像您所说的那样使用

创建文件

Environment.getExternalStorageDirectory() &

Environment.getExternalStoragePublicDirectory() 直到 API 28.

这已从 API 29 中弃用。即 Android 10 Q.

https://developer.android.com/reference/android/os/Environment.html#getExternalStoragePublicDirectory(java.lang.String)

Can I set up the directory where files will be saved once... without having to choose the directory every time a file is saving?

在 Android 5.1+ 上,您可以使用 ACTION_OPEN_DOCUMENT_TREE 允许用户选择基本目录。从那里,您可以:

  • 使用DocumentFile.fromTreeUri()得到代表那棵树的DocumentFile
  • 使用那个 DocumentFile 创建子树(例如目录)
  • 使用 ContentResolvertakePersistableUriPermission() 可以长期访问您的新子树
  • 使用 ContentResolverDocumentFile 将内容放入该子树