首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SAF解码的Uris似乎与SAF方法编码的Uris不同

SAF解码的Uris似乎与SAF方法编码的Uris不同
EN

Stack Overflow用户
提问于 2019-09-30 22:54:31
回答 1查看 47关注 0票数 0

我正在尝试在我的Android应用程序中引入SAF。

似乎来自许多SAF方法的uris都是编码形式的,例如:或/之类的字符被%3A和%2F替换。

在我的应用程序中,我对uris进行了解码,因此它们具有以下形式:

content://com.android.providers.downloads.documents/tree/raw:/storage/emulated/0/Download/foldername

来存储它们。

也许这是错误的。因此,我问SAF方法在传递uri时是否被欺骗了,这些uri是从我的应用程序存档形式的字符串中解析出来的,也就是说,使用诸如:和/这样的真实字符。

如下所示的方法:

代码语言:javascript
复制
static public DocumentFile createFolderInFolder(Activity activity,String parentFolderUriStringParam,String folderName)
{
DocumentFile result=null;
String parentFolderUriString=Uri.decode(parentFolderUriStringParam);
ContentResolver contentResolver;
contentResolver = activity.getContentResolver();
Uri parentFolderUri=null;
Uri oldParentUri = Uri.parse(parentFolderUriString);
String id = DocumentsContract.getTreeDocumentId(oldParentUri );
parentFolderUri= DocumentsContract.buildChildDocumentsUriUsingTree(oldParentUri , id);
 DocumentFile parentFolder = DocumentFile.fromTreeUri(activity, parentFolderUri);
result=parentFolder.createDirectory(folderName);
return result;
}

它有

parentFolderUriStringParam=content://com.android.providers.downloads.documents/tree/raw:/storage/emulated/0/Download/foldername

oldParentUri="content://com.android.providers.downloads.documents/tree/raw:/storage/emulated/0/Download/foldername“

id="raw:“

parentFolderUri=content://com.android.providers.downloads.documents/tree/raw%3A/document/raw%3A/children

EN

回答 1

Stack Overflow用户

发布于 2019-09-30 23:44:42

不应更改已获取的uri字符串。按原样保存它们。按原样使用它们。

仅在onActivityResult中保存data.getData().toString()。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58170437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档