Android SAF(Storage Access Framework)是一种用于访问外部存储的方式。在使用SAF时,我们可能会遇到从DocumentsContract.getTreeDocumentId
获取的文件夹Uri与之前授权的Uri形式不同的问题。下面是解决该问题的代码示例:
// 获取之前授权的Uri
Uri grantedUri = ...;
// 通过DocumentsContract.getTreeDocumentId获取文件夹的documentId
String folderDocumentId = DocumentsContract.getTreeDocumentId(grantedUri);
// 构建新的文件夹Uri
Uri newFolderUri = DocumentsContract.buildTreeDocumentUri(grantedUri.getAuthority(), folderDocumentId);
通过上述代码示例,我们可以将从DocumentsContract.getTreeDocumentId
获取的文件夹documentId与之前授权的Uri的Authority结合起来,构建出新的文件夹Uri。
注意:从DocumentsContract.getTreeDocumentId
获取的documentId可能包含斜杠(/),而之前授权的Uri不包含斜杠。因此,我们需要根据实际情况来处理这个差异。