无法控制saf ui应启动的初始目录

v6ylcynt  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(527)

我正在尝试使用saf(存储访问框架)保存文本文件,但我无法控制它应保存在何处,我在文档中使用了以下方法:

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总是从下载开始。
我想把文件保存在根目录下。另外,我想保存它自动没有任何用户交互。

pu82cl6c

pu82cl6c1#

引用文档 EXTRA_INITIAL_URI :
[额外的]应该指定一个文档uri或一个带有文档id的树uri。
“文档uri”是您以前从 ACTION_OPEN_DOCUMENT 或者 ACTION_CREATE_DOCUMENT . “树uri”是您以前从 ACTION_OPEN_DOCUMENT_TREE . Uri.parse() 两者都不是。

相关问题