23

我可以在这里找到如何将 android.net.Uri 转换为 Java.net.URI反之亦然。

所以花了一些时间后,我想通了。这是解决方案(如果有其他解决方案,请同时发布)

先将javaURI转成string,然后使用android.net.Uri的parse函数

android.net.URI androidUri = android.net.Uri.parse(javaURI.toString());
4

3 回答 3

32

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 的... ;)

于 2014-03-11T13:26:23.957 回答
4

对于遇到此问题的任何人,我都使用以下代码取得了成功:

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 字符串。

于 2013-06-27T19:48:00.903 回答
0
uri = Uri.parse(mFile.toString());
于 2019-10-15T11:21:27.567 回答