Convert java.net.URI to android.net.Uri

前端 未结 3 373
不思量自难忘°
不思量自难忘° 2021-01-01 13:17

I am able to find how to convert android.net.Uri to Java.net.URI here but not vice-versa.

So after spending some time I figured it out. Here is the solution(If ther

相关标签:
3条回答
  • 2021-01-01 13:54
    uri = Uri.parse(mFile.toString());
    
    0 讨论(0)
  • 2021-01-01 14:07

    http://developer.android.com/reference/android/net/Uri.html#parse(java.lang.String)

    public static Uri parse (String uriString)
    

    Creates a Uri which parses the given encoded URI string.

    Parameters
    uriString: an RFC 2396-compliant, encoded URI

    Returns
    Uri for this given uri string

    Throws
    NullPointerException if uriString is null


    Therefore, here is an example:

    android.net.Uri.parse(new java.net.URI("").toString());
    

    Goes without saying, use the real java.net.URI in it... ;)

    0 讨论(0)
  • 2021-01-01 14:08

    For anyone coming across this, I had success with the following code:

    URI oldUri;
    Uri newUri  = new Uri.Builder().scheme(oldUri.getScheme())
                        .encodedAuthority(oldUri.getRawAuthority())
                        .encodedPath(oldUri.getRawPath())
                        .query(oldUri.getRawQuery())
                        .fragment(oldUri.getRawFragment())
                        .build();
    

    Basically, get each URI component and pass it to the builder (as there does not seem to be a way to pass in a whole URI string.

    0 讨论(0)
提交回复
热议问题