Added in API level 1

Uri


abstract class Uri : Comparable<Uri!>, Parcelable
kotlin.Any
   ↳ 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.

Summary

Nested classes

Helper class for building or manipulating URI references.

Inherited constants
Public methods
abstract Uri.Builder!

Constructs a new builder, copying the attributes from this Uri.

open Int
compareTo(other: Uri!)

Compares the string representation of this Uri with that of another.

open static String!

Decodes '%'-escaped octets in the given string using the UTF-8 scheme.

open static String!

Encodes characters in the given string as '%'-escaped octets using the UTF-8 scheme.

open static String!
encode(s: String!, allow: String!)

Encodes characters in the given string as '%'-escaped octets using the UTF-8 scheme.

open Boolean
equals(other: Any?)

Compares this Uri to another object for equality.

open static Uri!
fromFile(file: File!)

Creates a Uri from a file.

open static Uri!
fromParts(scheme: String!, ssp: String!, fragment: String!)

Creates an opaque Uri from the given components.

abstract String?

Gets the decoded authority part of this URI.

open Boolean
getBooleanQueryParameter(key: String!, defaultValue: Boolean)

Searches the query string for the first value with the given key and interprets it as a boolean value.

abstract String?

Gets the encoded authority part of this URI.

abstract String?

Gets the encoded fragment part of this URI, everything after the '#'.

abstract String?

Gets the encoded path.

abstract String?

Gets the encoded query component from this URI.

abstract String!

Gets the scheme-specific part of this URI, i.

abstract String?

Gets the encoded user information from the authority.

abstract String?

Gets the decoded fragment part of this URI, everything after the '#'.

abstract String?

Gets the encoded host from the authority for this URI.

abstract String?

Gets the decoded last segment in the path.

abstract String?

Gets the decoded path.

abstract MutableList<String!>!

Gets the decoded path segments.

abstract Int

Gets the port from the authority for this URI.

abstract String?

Gets the decoded query component from this URI.

open String?

Searches the query string for the first value with the given key.

open MutableSet<String!>!

Returns a set of the unique names of all query parameters.

open MutableList<String!>!

Searches the query string for parameter values with the given key.

abstract String?

Gets the scheme of this URI.

abstract String!

Gets the scheme-specific part of this URI, i.

abstract String?

Gets the decoded user information from the authority.

open Int

Hashes the encoded string represention of this Uri consistently with equals(java.lang.Object).

open Boolean

Returns true if this URI is absolute, i.

abstract Boolean

Returns true if this URI is hierarchical like "http://google.

open Boolean

Returns true if this URI is opaque like "mailto:nobody@google.

abstract Boolean

Returns true if this URI is relative, i.

open Uri!

Return an equivalent URI with a lowercase scheme component.

open static Uri!
parse(uriString: String!)

Creates a Uri which parses the given encoded URI string.

abstract String

Returns the encoded string representation of this URI.

open static Uri!
withAppendedPath(baseUri: Uri!, pathSegment: String!)

Creates a new Uri by appending an already-encoded path segment to a base Uri.

open static Unit
writeToParcel(out: Parcel!, uri: Uri!)

Writes a Uri to a Parcel.

Inherited functions
Properties
static Parcelable.Creator<Uri!>

Reads Uris from Parcels.

static Uri!

The empty URI, equivalent to "".

Public methods

buildUpon

Added in API level 1
abstract fun buildUpon(): Uri.Builder!

Constructs a new builder, copying the attributes from this Uri.

compareTo

Added in API level 1
open fun compareTo(other: Uri!): Int

Compares the string representation of this Uri with that of another.

Parameters
o the object to be compared.
Return
Int a negative integer, zero, or a positive integer as this object is less than, equal to, or greater than the specified object.
Exceptions
java.lang.NullPointerException if the specified object is null
java.lang.ClassCastException if the specified object's type prevents it from being compared to this object.

decode

Added in API level 1
open static fun decode(s: String!): String!

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
Return
String! the given string with escaped octets decoded, or null if s is null

encode

Added in API level 1
open static fun encode(s: String!): String!

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
Return
String! an encoded version of s suitable for use as a URI component, or null if s is null

encode

Added in API level 1
open static fun encode(
    s: String!,
    allow: String!
): String!

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
Return
String! an encoded version of s suitable for use as a URI component, or null if s is null

equals

Added in API level 1
open fun equals(other: Any?): Boolean

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
obj the reference object with which to compare.
o This value may be null.
Return
Boolean true if this object is the same as the obj argument; false otherwise.

fromFile

Added in API level 1
open static fun fromFile(file: File!): Uri!

Creates a Uri from a file. The URI has the form "file://". Encodes path characters with the exception of '/'.

Example: "file:///tmp/android.txt"

Return
Uri! a Uri for the given file
Exceptions
java.lang.NullPointerException if file is null

fromParts

Added in API level 1
open static fun fromParts(
    scheme: String!,
    ssp: String!,
    fragment: String!
): Uri!

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
Return
Uri! Uri composed of the given scheme, ssp, and fragment
Exceptions
java.lang.NullPointerException if scheme or ssp is null

getAuthority

Added in API level 1
abstract fun getAuthority(): String?

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"

Return
String? the authority for this URI or null if not present

getBooleanQueryParameter

Added in API level 11
open fun getBooleanQueryParameter(
    key: String!,
    defaultValue: Boolean
): Boolean

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
Return
Boolean the boolean interpretation of the query parameter key

getEncodedAuthority

Added in API level 1
abstract fun getEncodedAuthority(): String?

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"

Return
String? the authority for this URI or null if not present

getEncodedFragment

Added in API level 1
abstract fun getEncodedFragment(): String?

Gets the encoded fragment part of this URI, everything after the '#'.

Return
String? the encoded fragment or null if there isn't one

getEncodedPath

Added in API level 1
abstract fun getEncodedPath(): String?

Gets the encoded path.

Return
String? the encoded path, or null if this is not a hierarchical URI (like "mailto:nobody@google.com") or the URI is invalid

getEncodedQuery

Added in API level 1
abstract fun getEncodedQuery(): String?

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".

Return
String? the encoded query or null if there isn't one

getEncodedSchemeSpecificPart

Added in API level 1
abstract fun getEncodedSchemeSpecificPart(): String!

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"

Return
String! the encoded scheme-specific-part

getEncodedUserInfo

Added in API level 1
abstract fun getEncodedUserInfo(): String?

Gets the encoded user information from the authority. For example, if the authority is "nobody@google.com", this method will return "nobody".

Return
String? the user info for this URI or null if not present

getFragment

Added in API level 1
abstract fun getFragment(): String?

Gets the decoded fragment part of this URI, everything after the '#'.

Return
String? the decoded fragment or null if there isn't one

getHost

Added in API level 1
abstract fun getHost(): String?

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".

Return
String? the host for this URI or null if not present

getLastPathSegment

Added in API level 1
abstract fun getLastPathSegment(): String?

Gets the decoded last segment in the path.

Return
String? the decoded last segment or null if the path is empty

getPath

Added in API level 1
abstract fun getPath(): String?

Gets the decoded path.

Return
String? the decoded path, or null if this is not a hierarchical URI (like "mailto:nobody@google.com") or the URI is invalid

getPathSegments

Added in API level 1
abstract fun getPathSegments(): MutableList<String!>!

Gets the decoded path segments.

Return
MutableList<String!>! decoded path segments, each without a leading or trailing '/'

getPort

Added in API level 1
abstract fun getPort(): Int

Gets the port from the authority for this URI. For example, if the authority is "google.com:80", this method will return 80.

Return
Int the port for this URI or -1 if invalid or not present

getQuery

Added in API level 1
abstract fun getQuery(): String?

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".

Return
String? the decoded query or null if there isn't one

getQueryParameter

Added in API level 1
open fun getQueryParameter(key: String!): String?

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
Return
String? the decoded value or null if no parameter is found
Exceptions
java.lang.UnsupportedOperationException if this isn't a hierarchical URI
java.lang.NullPointerException if key is null

getQueryParameterNames

Added in API level 11
open fun getQueryParameterNames(): MutableSet<String!>!

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.

Return
MutableSet<String!>! a set of decoded names
Exceptions
java.lang.UnsupportedOperationException if this isn't a hierarchical URI

getQueryParameters

Added in API level 1
open fun getQueryParameters(key: String!): MutableList<String!>!

Searches the query string for parameter values with the given key.

Parameters
key String!: which will be encoded
Return
MutableList<String!>! a list of decoded values
Exceptions
java.lang.UnsupportedOperationException if this isn't a hierarchical URI
java.lang.NullPointerException if key is null

getScheme

Added in API level 1
abstract fun getScheme(): String?

Gets the scheme of this URI. Example: "http"

Return
String? the scheme or null if this is a relative URI

getSchemeSpecificPart

Added in API level 1
abstract fun getSchemeSpecificPart(): String!

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"

Return
String! the decoded scheme-specific-part

getUserInfo

Added in API level 1
abstract fun getUserInfo(): String?

Gets the decoded user information from the authority. For example, if the authority is "nobody@google.com", this method will return "nobody".

Return
String? the user info for this URI or null if not present

hashCode

Added in API level 1
open fun hashCode(): Int

Hashes the encoded string represention of this Uri consistently with equals(java.lang.Object).

Return
Int a hash code value for this object.

isAbsolute

Added in API level 1
open fun isAbsolute(): Boolean

Returns true if this URI is absolute, i.e. if it contains an explicit scheme.

Return
Boolean true if this URI is absolute, false if it's relative

isHierarchical

Added in API level 1
abstract fun isHierarchical(): Boolean

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.

isOpaque

Added in API level 1
open fun isOpaque(): Boolean

Returns true if this URI is opaque like "mailto:nobody@google.com". The scheme-specific part of an opaque URI cannot start with a '/'.

isRelative

Added in API level 1
abstract fun isRelative(): Boolean

Returns true if this URI is relative, i.e. if it doesn't contain an explicit scheme.

Return
Boolean true if this URI is relative, false if it's absolute

normalizeScheme

Added in API level 16
open fun normalizeScheme(): Uri!

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 URIs, or 'fix' poorly formatted URIs - 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.

Return
Uri! normalized Uri (never null)

parse

Added in API level 1
open static fun parse(uriString: String!): Uri!

Creates a Uri which parses the given encoded URI string.

Parameters
uriString String!: an RFC 2396-compliant, encoded URI
Return
Uri! Uri for this given uri string
Exceptions
java.lang.NullPointerException if uriString is null

toString

Added in API level 1
abstract fun toString(): String

Returns the encoded string representation of this URI. Example: "http://google.com/"

Return
String a string representation of the object.

withAppendedPath

Added in API level 1
open static fun withAppendedPath(
    baseUri: Uri!,
    pathSegment: String!
): Uri!

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
Return
Uri! a new Uri based on baseUri with the given segment appended to the path
Exceptions
java.lang.NullPointerException if baseUri is null

writeToParcel

Added in API level 1
open static fun writeToParcel(
    out: Parcel!,
    uri: Uri!
): Unit

Writes a Uri to a Parcel.

Parameters
out Parcel!: parcel to write to
uri Uri!: to write, can be null

Properties

CREATOR

Added in API level 1
static val CREATOR: Parcelable.Creator<Uri!>

Reads Uris from Parcels.

EMPTY

Added in API level 1
static val EMPTY: Uri!

The empty URI, equivalent to "".