【发布时间】:2020-11-25 09:19:02
【问题描述】:
我正在尝试使用 SAF(存储访问框架)保存一个文本文件,但我无法控制它应该保存在哪里,我使用了 Documentation 中的这个方法,如下所示:
private void createFile(Uri pickerInitialUri) {
Intent intent = new Intent(Intent.ACTION_CREATE_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("text/*");
intent.putExtra(Intent.EXTRA_TITLE, "new.txt");
// Optionally, specify a URI for the directory that should be opened in
// the system file picker when your app creates the document.
intent.putExtra(DocumentsContract.EXTRA_INITIAL_URI, pickerInitialUri);
startActivityForResult(intent, CREATE_FILE);
}
传递根目录Uri如下:
Uri.parse(Environment.getExternalStorageDirectory().toString())
但无论我解析什么字符串,即使我将 null 作为 Uri 传递,框架 UI 总是从下载开始。
我想将文件保存在根目录中。另外,我想自动保存它而无需任何用户交互。
【问题讨论】:
-
使用您之前获得的 uri 选择目录或文件。你不能自己制造这些尿。
-
如果没有至少一次用户交互,您无法使用 SAF 保存。
-
@blackapps 你的意思是我应该从日志中获取 uri 还是通过调试器从 onActivityResult 获取 uri?我不太明白我之前获得的 uri 是什么意思
-
@balckapps 起始目录始终是我上次保存的位置。如果这是我在问题中提到的第一次下载起始目录
-
the starting directory is always where I saved the last time.是的,如果你什么都不做。重读我的第一条评论。
标签: java android android-10.0 storage-access-framework android-11