将java.net.URI转换为android.net.URI
我能够找到如何将android.net.Uri转换为Java.net.Uri,但不能反过来 所以在花了一段时间后,我明白了。这是解决方案(如果还有其他解决方案,请也发布) 首先将javaURI转换为字符串,然后使用android.net.Uri的解析函数将java.net.URI转换为android.net.URI,android,uri,Android,Uri,我能够找到如何将android.net.Uri转换为Java.net.Uri,但不能反过来 所以在花了一段时间后,我明白了。这是解决方案(如果还有其他解决方案,请也发布) 首先将javaURI转换为字符串,然后使用android.net.Uri的解析函数 android.net.URI androidUri = android.net.Uri.parse(javaURI.toString()); 对于任何遇到此问题的人,我成功地使用了以下代码: URI oldUri; Uri newUri
android.net.URI androidUri = android.net.Uri.parse(javaURI.toString());
对于任何遇到此问题的人,我成功地使用了以下代码:
URI oldUri;
Uri newUri = new Uri.Builder().scheme(oldUri.getScheme())
.encodedAuthority(oldUri.getRawAuthority())
.encodedPath(oldUri.getRawPath())
.query(oldUri.getRawQuery())
.fragment(oldUri.getRawFragment())
.build();
基本上,获取每个URI组件并将其传递给构建器(因为似乎没有一种方法可以传递整个URI字符串。
创建一个Uri,该Uri解析给定的编码Uri字符串
参数URI字符串:符合RFC2396的编码URI 返回值
此给定Uri字符串的Uri 抛出
如果uriString为null,则为NullPointerException
因此,这里有一个例子:
android.net.Uri.parse(new java.net.URI("").toString());
不用说,在它里面使用真正的
java.net.URI
。)310个字符对43个字符…-urinewuri=Uri.parse(oldUri.toString())
-hmm…Just brilliant@saleemrashid1凭上帝之名,你为什么要这样做?投票被否决,因为android.net.Uri已经有了一个解析方法。这可能是重复的,这也意味着你可以在本地JVM上运行单元测试,而不用担心android SDK的存在,因此生活变得更加轻松。
android.net.Uri.parse(new java.net.URI("").toString());
uri = Uri.parse(mFile.toString());