【发布时间】:2023-01-30 09:07:32
【问题描述】:
我在将此字符串“content://com.android.providers.media.documents/document/image%3A1000002538”正确转换为 Uri 时遇到问题。
情况:
我递减了一个 Uri
-
第一的,我将 Uri 转换为字符串,然后转换为 int
之后,我做了一个-1,然后我得到了一个看起来完全像递减字符串的字符串
然而,当我解析 uri 并尝试对其进行 setImageURI() 时,
它正在显示“文件错误访问最近的目录(目录
不存在?)”
这是我使用的代码:
Uri ImageUri = data.getData();
String uri1 = ImageUri.toString();
//region uri2
String substr1 = uri1.substring(uri1.length()-3);
int substr1int = parseInt(substr1)-1;
String decrementedstr1 = new Integer(substr1int).toString();
int numberofchars1 = uri1.length()-3;
String firstcomponent1 = uri1.substring(0, numberofchars1);
String uri2 = firstcomponent1 + decrementedstr1;
//endregion
Uri test = Uri.parse(uri2);
animateobject.setImageURI(test);
得到这个错误:
访问最近目录的文件错误(目录不存在?)。
注意:这是在 java 中,我正在使用 Android Studio 进行编码。
【问题讨论】:
-
不,你从哪里得到那个字符串?这是一个不可能的内容方案。
-
Uri来自哪个班级?
-
@blackapps 这是一个例子.. 我得到的真实 uri 是.. content://com.android.providers.media...../document/image%3A1000002538 。我需要将数字递增 1,因此我必须将其转换为字符串并将其解析回 uri。问题是 %3A 导致我的字符串被转换为 uri 的错误目录。
-
@JohnWilliams MainActivity 类
-
这样做:System.out.println(java.net.URLDecoder.decode("content://image%3A1000002539", StandardCharsets.UTF_8.name())); .请注意,%3A 变成了 : - 不确定是否解决了问题
标签: java android string uri percentage