将java.net.URI转换为android.net.Uri

时间:2012-09-29 02:48:50

标签: android uri

我能够找到如何将android.net.Uri转换为Java.net.URI here,但反之亦然。

所以花了一些时间后我才明白了。这是解决方案(如果有另一种解决方案,那么请发布它)

首先将javaURI转换为字符串,然后使用android.net.Uri的解析函数

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

3 个答案:

答案 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());