我可以在这里找到如何将 android.net.Uri 转换为 Java.net.URI但反之亦然。
所以花了一些时间后,我想通了。这是解决方案(如果有其他解决方案,请同时发布)
先将javaURI转成string,然后使用android.net.Uri的parse函数
android.net.URI androidUri = android.net.Uri.parse(javaURI.toString());
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 为空,则抛出NullPointerException
因此,这里有一个例子:
android.net.Uri.parse(new java.net.URI("").toString());
不用说,在其中使用真实 java.net.URI
的... ;)
对于遇到此问题的任何人,我都使用以下代码取得了成功:
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.parse(mFile.toString());