我能够找到如何将android.net.Uri转换为Java.net.URI here,但反之亦然。
所以花了一些时间后我才明白了。这是解决方案(如果有另一种解决方案,那么请发布它)
首先将javaURI转换为字符串,然后使用android.net.Uri的解析函数
android.net.URI androidUri = android.net.Uri.parse(javaURI.toString());
答案 0 :(得分:25)
http://developer.android.com/reference/android/net/Uri.html#parse(java.lang.String)
public static Uri parse (String uriString)
创建一个解析给定编码URI字符串的Uri。
参数
uriString:符合RFC 2396的编码URI返回
Uri为这个给定的uri字符串抛出
如果uriString为null,则为NullPointerException
因此,这是一个例子:
android.net.Uri.parse(new java.net.URI("").toString());
不言而喻,请使用真实的 java.net.URI
... ;)
答案 1 :(得分:2)
对于遇到此问题的人,我使用以下代码取得了成功:
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字符串的方法。
答案 2 :(得分:0)
uri = Uri.parse(mFile.toString());