public
abstract
class
Uri
extends Object
implements
Parcelable,
Comparable<Uri>
java.lang.Object | |
↳ | android.net.Uri |
Immutable URI reference. A URI reference includes a URI and a fragment, the component of the URI following a '#'. Builds and parses URI references which conform to RFC 2396.
In the interest of performance, this class performs little to no validation. Behavior is undefined for invalid input. This class is very forgiving--in the face of invalid input, it will return garbage rather than throw an exception unless otherwise specified.
Nested classes | |
---|---|
class |
Uri.Builder
Helper class for building or manipulating URI references. |
Inherited constants |
---|
From
interface
android.os.Parcelable
|
Fields | |
---|---|
public
static
final
Creator<Uri> |
CREATOR
Reads Uris from Parcels. |
public
static
final
Uri |
EMPTY
The empty URI, equivalent to "". |
Public methods | |
---|---|
abstract
Uri.Builder
|
buildUpon()
Constructs a new builder, copying the attributes from this Uri. |
int
|
compareTo(Uri other)
Compares the string representation of this Uri with that of another. |
static
String
|
decode(String s)
Decodes '%'-escaped octets in the given string using the UTF-8 scheme. |
static
String
|
encode(String s, String allow)
Encodes characters in the given string as '%'-escaped octets using the UTF-8 scheme. |
static
String
|
encode(String s)
Encodes characters in the given string as '%'-escaped octets using the UTF-8 scheme. |
boolean
|
equals(Object o)
Compares this Uri to another object for equality. |
static
Uri
|
fromFile(File file)
Creates a Uri from a file. |
static
Uri
|
fromParts(String scheme, String ssp, String fragment)
Creates an opaque Uri from the given components. |
abstract
String
|
getAuthority()
Gets the decoded authority part of this URI. |
boolean
|
getBooleanQueryParameter(String key, boolean defaultValue)
Searches the query string for the first value with the given key and interprets it as a boolean value. |
abstract
String
|
getEncodedAuthority()
Gets the encoded authority part of this URI. |
abstract
String
|
getEncodedFragment()
Gets the encoded fragment part of this URI, everything after the '#'. |
abstract
String
|
getEncodedPath()
Gets the encoded path. |
abstract
String
|
getEncodedQuery()
Gets the encoded query component from this URI. |
abstract
String
|
getEncodedSchemeSpecificPart()
Gets the scheme-specific part of this URI, i.e. everything between the scheme separator ':' and the fragment separator '#'. |
abstract
String
|
getEncodedUserInfo()
Gets the encoded user information from the authority. |
abstract
String
|
getFragment()
Gets the decoded fragment part of this URI, everything after the '#'. |
abstract
String
|
getHost()
Gets the encoded host from the authority for this URI. |
abstract
String
|
getLastPathSegment()
Gets the decoded last segment in the path. |
abstract
String
|
getPath()
Gets the decoded path. |
abstract
List<String>
|
getPathSegments()
Gets the decoded path segments. |
abstract
int
|
getPort()
Gets the port from the authority for this URI. |
abstract
String
|
getQuery()
Gets the decoded query component from this URI. |
String
|
getQueryParameter(String key)
Searches the query string for the first value with the given key. |
Set<String>
|
getQueryParameterNames()
Returns a set of the unique names of all query parameters. |
List<String>
|
getQueryParameters(String key)
Searches the query string for parameter values with the given key. |
abstract
String
|
getScheme()
Gets the scheme of this URI. |
abstract
String
|
getSchemeSpecificPart()
Gets the scheme-specific part of this URI, i.e. everything between the scheme separator ':' and the fragment separator '#'. |
abstract
String
|
getUserInfo()
Gets the decoded user information from the authority. |
int
|
hashCode()
Hashes the encoded string represention of this Uri consistently with
|
boolean
|
isAbsolute()
Returns true if this URI is absolute, i.e. if it contains an explicit scheme. |
abstract
boolean
|
isHierarchical()
Returns true if this URI is hierarchical like "http://google.com". |
boolean
|
isOpaque()
Returns true if this URI is opaque like "mailto:[email protected]". |
abstract
boolean
|
isRelative()
Returns true if this URI is relative, i.e. if it doesn't contain an explicit scheme. |
Uri
|
normalizeScheme()
Return an equivalent URI with a lowercase scheme component. |
static
Uri
|
parse(String uriString)
Creates a Uri which parses the given encoded URI string. |
abstract
String
|
toString()
Returns the encoded string representation of this URI. |
static
Uri
|
withAppendedPath(Uri baseUri, String pathSegment)
Creates a new Uri by appending an already-encoded path segment to a base Uri. |
static
void
|
writeToParcel(Parcel out, Uri uri)
Writes a Uri to a Parcel. |
Inherited methods | |
---|---|
From
class
java.lang.Object
| |
From
interface
android.os.Parcelable
| |
From
interface
java.lang.Comparable
|
Uri.Builder buildUpon ()
Constructs a new builder, copying the attributes from this Uri.
Returns | |
---|---|
Uri.Builder |
int compareTo (Uri other)
Compares the string representation of this Uri with that of another.
Parameters | |
---|---|
other |
Uri
|
Returns | |
---|---|
int |
String decode (String s)
Decodes '%'-escaped octets in the given string using the UTF-8 scheme. Replaces invalid octets with the unicode replacement character ("\\uFFFD").
Parameters | |
---|---|
s |
String :
encoded string to decode |
Returns | |
---|---|
String |
the given string with escaped octets decoded, or null if s is null |
String encode (String s, String allow)
Encodes characters in the given string as '%'-escaped octets using the UTF-8 scheme. Leaves letters ("A-Z", "a-z"), numbers ("0-9"), and unreserved characters ("_-!.~'()*") intact. Encodes all other characters with the exception of those specified in the allow argument.
Parameters | |
---|---|
s |
String :
string to encode |
allow |
String :
set of additional characters to allow in the encoded form,
null if no characters should be skipped |
Returns | |
---|---|
String |
an encoded version of s suitable for use as a URI component, or null if s is null |
String encode (String s)
Encodes characters in the given string as '%'-escaped octets using the UTF-8 scheme. Leaves letters ("A-Z", "a-z"), numbers ("0-9"), and unreserved characters ("_-!.~'()*") intact. Encodes all other characters.
Parameters | |
---|---|
s |
String :
string to encode |
Returns | |
---|---|
String |
an encoded version of s suitable for use as a URI component, or null if s is null |
boolean equals (Object o)
Compares this Uri to another object for equality. Returns true if the encoded string representations of this Uri and the given Uri are equal. Case counts. Paths are not normalized. If one Uri specifies a default port explicitly and the other leaves it implicit, they will not be considered equal.
Parameters | |
---|---|
o |
Object :
the reference object with which to compare. |
Returns | |
---|---|
boolean |
true if this object is the same as the obj
argument; false otherwise. |
Uri fromFile (File file)
Creates a Uri from a file. The URI has the form
"file:// Example: "file:///tmp/android.txt"
Parameters
file
File
Returns
Uri
a Uri for the given file
Throws
NullPointerException
if file is null
Uri fromParts (String scheme, String ssp, String fragment)
Creates an opaque Uri from the given components. Encodes the ssp which means this method cannot be used to create hierarchical URIs.
Parameters | |
---|---|
scheme |
String :
of the URI |
ssp |
String :
scheme-specific-part, everything between the
scheme separator (':') and the fragment separator ('#'), which will
get encoded |
fragment |
String :
fragment, everything after the '#', null if undefined,
will get encoded |
Returns | |
---|---|
Uri |
Uri composed of the given scheme, ssp, and fragment |
Throws | |
---|---|
NullPointerException |
if scheme or ssp is null |
String getAuthority ()
Gets the decoded authority part of this URI. For
server addresses, the authority is structured as follows:
[ userinfo '@' ] host [ ':' port ]
Examples: "google.com", "[email protected]:80"
Returns | |
---|---|
String |
the authority for this URI or null if not present |
boolean getBooleanQueryParameter (String key, boolean defaultValue)
Searches the query string for the first value with the given key and interprets it
as a boolean value. "false" and "0" are interpreted as false
, everything
else is interpreted as true
.
Parameters | |
---|---|
key |
String :
which will be decoded |
defaultValue |
boolean :
the default value to return if there is no query parameter for key |
Returns | |
---|---|
boolean |
the boolean interpretation of the query parameter key |
String getEncodedAuthority ()
Gets the encoded authority part of this URI. For
server addresses, the authority is structured as follows:
[ userinfo '@' ] host [ ':' port ]
Examples: "google.com", "[email protected]:80"
Returns | |
---|---|
String |
the authority for this URI or null if not present |
String getEncodedFragment ()
Gets the encoded fragment part of this URI, everything after the '#'.
Returns | |
---|---|
String |
the encoded fragment or null if there isn't one |
String getEncodedPath ()
Gets the encoded path.
Returns | |
---|---|
String |
the encoded path, or null if this is not a hierarchical URI (like "mailto:[email protected]") or the URI is invalid |
String getEncodedQuery ()
Gets the encoded query component from this URI. The query comes after the query separator ('?') and before the fragment separator ('#'). This method would return "q=android" for "http://www.google.com/search?q=android".
Returns | |
---|---|
String |
the encoded query or null if there isn't one |
String getEncodedSchemeSpecificPart ()
Gets the scheme-specific part of this URI, i.e. everything between the scheme separator ':' and the fragment separator '#'. If this is a relative URI, this method returns the entire URI. Leaves escaped octets intact.
Example: "//www.google.com/search?q=android"
Returns | |
---|---|
String |
the decoded scheme-specific-part |
String getEncodedUserInfo ()
Gets the encoded user information from the authority. For example, if the authority is "[email protected]", this method will return "nobody".
Returns | |
---|---|
String |
the user info for this URI or null if not present |
String getFragment ()
Gets the decoded fragment part of this URI, everything after the '#'.
Returns | |
---|---|
String |
the decoded fragment or null if there isn't one |
String getHost ()
Gets the encoded host from the authority for this URI. For example, if the authority is "[email protected]", this method will return "google.com".
Returns | |
---|---|
String |
the host for this URI or null if not present |
String getLastPathSegment ()
Gets the decoded last segment in the path.
Returns | |
---|---|
String |
the decoded last segment or null if the path is empty |
String getPath ()
Gets the decoded path.
Returns | |
---|---|
String |
the decoded path, or null if this is not a hierarchical URI (like "mailto:[email protected]") or the URI is invalid |
List<String> getPathSegments ()
Gets the decoded path segments.
Returns | |
---|---|
List<String> |
decoded path segments, each without a leading or trailing '/' |
int getPort ()
Gets the port from the authority for this URI. For example, if the authority is "google.com:80", this method will return 80.
Returns | |
---|---|
int |
the port for this URI or -1 if invalid or not present |
String getQuery ()
Gets the decoded query component from this URI. The query comes after the query separator ('?') and before the fragment separator ('#'). This method would return "q=android" for "http://www.google.com/search?q=android".
Returns | |
---|---|
String |
the decoded query or null if there isn't one |
String getQueryParameter (String key)
Searches the query string for the first value with the given key.
Warning: Prior to Jelly Bean, this decoded the '+' character as '+' rather than ' '.
Parameters | |
---|---|
key |
String :
which will be encoded |
Returns | |
---|---|
String |
the decoded value or null if no parameter is found |
Throws | |
---|---|
UnsupportedOperationException |
if this isn't a hierarchical URI |
NullPointerException |
if key is null |
Set<String> getQueryParameterNames ()
Returns a set of the unique names of all query parameters. Iterating over the set will return the names in order of their first occurrence.
Returns | |
---|---|
Set<String> |
a set of decoded names |
Throws | |
---|---|
UnsupportedOperationException |
if this isn't a hierarchical URI |
List<String> getQueryParameters (String key)
Searches the query string for parameter values with the given key.
Parameters | |
---|---|
key |
String :
which will be encoded |
Returns | |
---|---|
List<String> |
a list of decoded values |
Throws | |
---|---|
UnsupportedOperationException |
if this isn't a hierarchical URI |
NullPointerException |
if key is null |
String getScheme ()
Gets the scheme of this URI. Example: "http"
Returns | |
---|---|
String |
the scheme or null if this is a relative URI |
String getSchemeSpecificPart ()
Gets the scheme-specific part of this URI, i.e. everything between the scheme separator ':' and the fragment separator '#'. If this is a relative URI, this method returns the entire URI. Decodes escaped octets.
Example: "//www.google.com/search?q=android"
Returns | |
---|---|
String |
the decoded scheme-specific-part |
String getUserInfo ()
Gets the decoded user information from the authority. For example, if the authority is "[email protected]", this method will return "nobody".
Returns | |
---|---|
String |
the user info for this URI or null if not present |
int hashCode ()
Hashes the encoded string represention of this Uri consistently with
equals(Object)
.
Returns | |
---|---|
int |
a hash code value for this object. |
boolean isAbsolute ()
Returns true if this URI is absolute, i.e. if it contains an explicit scheme.
Returns | |
---|---|
boolean |
true if this URI is absolute, false if it's relative |
boolean isHierarchical ()
Returns true if this URI is hierarchical like "http://google.com". Absolute URIs are hierarchical if the scheme-specific part starts with a '/'. Relative URIs are always hierarchical.
Returns | |
---|---|
boolean |
boolean isOpaque ()
Returns true if this URI is opaque like "mailto:[email protected]". The scheme-specific part of an opaque URI cannot start with a '/'.
Returns | |
---|---|
boolean |
boolean isRelative ()
Returns true if this URI is relative, i.e. if it doesn't contain an explicit scheme.
Returns | |
---|---|
boolean |
true if this URI is relative, false if it's absolute |
Uri normalizeScheme ()
Return an equivalent URI with a lowercase scheme component. This aligns the Uri with Android best practices for intent filtering.
For example, "HTTP://www.android.com" becomes "http://www.android.com"
All URIs received from outside Android (such as user input, or external sources like Bluetooth, NFC, or the Internet) should be normalized before they are used to create an Intent.
This method does not validate bad URI's, or 'fix' poorly formatted URI's - so do not use it for input validation. A Uri will always be returned, even if the Uri is badly formatted to begin with and a scheme component cannot be found.
Returns | |
---|---|
Uri |
normalized Uri (never null) |
Uri parse (String uriString)
Creates a Uri which parses the given encoded URI string.
Parameters | |
---|---|
uriString |
String :
an RFC 2396-compliant, encoded URI |
Returns | |
---|---|
Uri |
Uri for this given uri string |
Throws | |
---|---|
NullPointerException |
if uriString is null |
String toString ()
Returns the encoded string representation of this URI. Example: "http://google.com/"
Returns | |
---|---|
String |
a string representation of the object. |
Uri withAppendedPath (Uri baseUri, String pathSegment)
Creates a new Uri by appending an already-encoded path segment to a base Uri.
Parameters | |
---|---|
baseUri |
Uri :
Uri to append path segment to |
pathSegment |
String :
encoded path segment to append |
Returns | |
---|---|
Uri |
a new Uri based on baseUri with the given segment appended to the path |
Throws | |
---|---|
NullPointerException |
if baseUri is null |
void writeToParcel (Parcel out, Uri uri)
Writes a Uri to a Parcel.
Parameters | |
---|---|
out |
Parcel :
parcel to write to |
uri |
Uri :
to write, can be null
|