存储访问框架 - 保存 Uri
Storage Access Framework - Saving Uri
我的应用程序需要以合适的形式存档文件夹 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
class(或类似的)可以查询其参数而不抛出任何异常。
欢迎提出任何建议
存档 Uri 的正确方法是保存 uri.toString()
值。
然后检索它:uri=Uri.parse(archivedUriString);
我的应用程序需要以合适的形式存档文件夹 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
class(或类似的)可以查询其参数而不抛出任何异常。
欢迎提出任何建议
存档 Uri 的正确方法是保存 uri.toString()
值。
然后检索它:uri=Uri.parse(archivedUriString);