android.net
public
abstract
class
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
Uri.Builder |
Helper class for building or manipulating URI references. |
Summary
Constants
Public Methods
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait
Details
Constants
public
static
final
Creator<Uri>
CREATOR
Reads Uris from Parcels.
public
static
final
Uri
EMPTY
The empty URI, equivalent to "".
Public Methods
public
abstract
Uri.Builder
buildUpon()
Constructs a new builder, copying the attributes from this Uri.
public
int
compareTo(Uri other)
Compares the string representation of this Uri with that of
another.
public
static
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
| encoded string to decode |
Returns
- the given string with escaped octets decoded, or null if
s is null
public
static
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.
Returns
- an encoded version of s suitable for use as a URI component,
or null if s is null
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 to encode |
allow
| set of additional characters to allow in the encoded form,
null if no characters should be skipped |
Returns
- an encoded version of s suitable for use as a URI component,
or null if s is null
public
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 object to compare with this object. |
Returns
- boolean
true
if the object is the same as this
object false
if it is different from this object.
public
static
Uri
fromFile(File file)
Creates a Uri from a file. The URI has the form
"file://
". Encodes path characters with the exception of
'/'.
Example: "file:///tmp/android.txt"
public
static
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
| of the URI |
ssp
| scheme-specific-part, everything between the
scheme separator (':') and the fragment separator ('#'), which will
get encoded |
fragment
| fragment, everything after the '#', null if undefined,
will get encoded |
Returns
- Uri composed of the given scheme, ssp, and fragment
public
abstract
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", "bob@google.com:80"
Returns
- the authority for this URI or null if not present
public
abstract
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", "bob@google.com:80"
Returns
- the authority for this URI or null if not present
public
abstract
String
getEncodedFragment()
Gets the encoded fragment part of this URI, everything after the '#'.
Returns
- the encoded fragment or null if there isn't one
public
abstract
String
getEncodedPath()
Gets the encoded path.
Returns
- the encoded path, or null if this is not a hierarchical URI
(like "mailto:nobody@google.com") or the URI is invalid
public
abstract
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
- the encoded query or null if there isn't one
public
abstract
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
- the decoded scheme-specific-part
public
abstract
String
getEncodedUserInfo()
Gets the encoded user information from the authority.
For example, if the authority is "nobody@google.com", this method will
return "nobody".
Returns
- the user info for this URI or null if not present
public
abstract
String
getFragment()
Gets the decoded fragment part of this URI, everything after the '#'.
Returns
- the decoded fragment or null if there isn't one
public
abstract
String
getHost()
Gets the encoded host from the authority for this URI. For example,
if the authority is "bob@google.com", this method will return
"google.com".
Returns
- the host for this URI or null if not present
public
abstract
String
getLastPathSegment()
Gets the decoded last segment in the path.
Returns
- the decoded last segment or null if the path is empty
public
abstract
String
getPath()
Gets the decoded path.
Returns
- the decoded path, or null if this is not a hierarchical URI
(like "mailto:nobody@google.com") or the URI is invalid
public
abstract
List<String>
getPathSegments()
Gets the decoded path segments.
Returns
- decoded path segments, each without a leading or trailing '/'
public
abstract
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
- the port for this URI or -1 if invalid or not present
public
abstract
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
- the decoded query or null if there isn't one
public
String
getQueryParameter(String key)
Searches the query string for the first value with the given key.
Parameters
key
| which will be encoded |
Returns
- the decoded value or null if no parameter is found
public
List<String>
getQueryParameters(String key)
Searches the query string for parameter values with the given key.
Parameters
key
| which will be encoded |
public
abstract
String
getScheme()
Gets the scheme of this URI. Example: "http"
Returns
- the scheme or null if this is a relative URI
public
abstract
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
- the decoded scheme-specific-part
public
abstract
String
getUserInfo()
Gets the decoded user information from the authority.
For example, if the authority is "nobody@google.com", this method will
return "nobody".
Returns
- the user info for this URI or null if not present
public
int
hashCode()
Hashes the encoded string represention of this Uri consistently with
equals(Object).
public
boolean
isAbsolute()
Returns true if this URI is absolute, i.e. if it contains an
explicit scheme.
Returns
- true if this URI is absolute, false if it's relative
public
abstract
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.
public
boolean
isOpaque()
Returns true if this URI is opaque like "mailto:nobody@google.com". The
scheme-specific part of an opaque URI cannot start with a '/'.
public
abstract
boolean
isRelative()
Returns true if this URI is relative, i.e. if it doesn't contain an
explicit scheme.
Returns
- true if this URI is relative, false if it's absolute
public
static
Uri
parse(String uriString)
Creates a Uri which parses the given encoded URI string.
Parameters
uriString
| an RFC 3296-compliant, encoded URI |
Returns
- Uri for this given uri string
public
abstract
String
toString()
Returns the encoded string representation of this URI.
Example: "http://google.com/"
Returns
- String a printable representation for the receiver.
public
static
Uri
withAppendedPath(Uri baseUri, String pathSegment)
Creates a new Uri by encoding and appending a path segment to a base Uri.
Parameters
baseUri
| Uri to append path segment to |
pathSegment
| to encode and append |
Returns
- a new Uri based on baseUri with the given segment encoded and
appended to the path
public
static
void
writeToParcel(Parcel out, Uri uri)
Writes a Uri to a Parcel.
Parameters
out
| parcel to write to |
uri
| to write, can be null
|