存储访问框架-保存Uri

时间:2019-06-14 09:26:45

标签: java android uri android-permissions storage-access-framework

我的应用程序需要以适当的格式存档文件夹Uri(来自带有ACTION_OPEN_DOCUMENT_TREE的Inten,并且其中的正确标志已通过用户选择返回给应用程序),以便下次运行该应用程序时使用它或设备已启动(使用了takePersistableUriPermission)。

将Uri路径保存为字符串似乎还不够,因为

Uri uri;
uri=Uri.parse(uriPath);
docUri= DocumentsContract.buildDocumentUriUsingTree(uri,
            DocumentsContract.getTreeDocumentId(uri));

给出错误信息,例如无效的Uri。

同时保存Uri ID也没用。

我看到Uri里面有很多参数。我检查了样本Uri中有哪些参数值,还有一些是。

所以我会知道如何保存Uri,以便应用程序具有所有必要的数据来重新创建它,并且DocumentsContract类(或类似类)可以查询其参数而不会引发任何异常。

欢迎任何建议

1 个答案:

答案 0 :(得分:0)

归档Uri的正确方法是保存uri.toString()值。

然后检索它:uri=Uri.parse(archivedUriString);