【问题标题】:Storage Access Framework - Saving Uri存储访问框架 - 保存 Uri
【发布时间】:2019-06-14 09:26:45
【问题描述】:

我的应用程序需要以合适的形式归档一个文件夹 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 类(或类似类)可以查询其参数而不会引发任何异常。

欢迎提出建议

【问题讨论】:

  • docUri = Uri.parse(uriString);(假设你已经持久化了docUri.toString()的返回值)
  • @user1643723 你的建议奏效了,所以如果你希望它被接受,请发布一个答案,否则我会在几天内回复。

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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-28
    • 2021-07-11
    • 1970-01-01
    • 2014-09-30
    • 2016-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多