# CustomTabsService

Artifact: [androidx.browser:browser](https://developer.android.com/jetpack/androidx/releases/browser) [View Source](https://cs.android.com/search?q=file:androidx/browser/customtabs/CustomTabsService.java+class:androidx.browser.customtabs.CustomTabsService) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/browser#1.2.0)

*** ** * ** ***

<br />

```
abstract class CustomTabsService : Service
```

<br />

|---|---|---|---|---|
| [kotlin.Any](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html) |||||
| ↳ | [android.content.Context](https://developer.android.com/reference/android/content/Context.html) ||||
|   | ↳ | [android.content.ContextWrapper](https://developer.android.com/reference/android/content/ContextWrapper.html) |||
|   |   | ↳ | [android.app.Service](https://developer.android.com/reference/android/app/Service.html) ||
|   |   |   | ↳ | [androidx.browser.customtabs.CustomTabsService](https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService) |

*** ** * ** ***

Abstract service class for implementing Custom Tabs related functionality. The service should be responding to the action ACTION_CUSTOM_TABS_CONNECTION. This class should be used by implementers that want to provide Custom Tabs functionality, not by clients that want to launch Custom Tabs.

## Summary

| ### Nested types |
|---|
| `@https://developer.android.com/reference/java/lang/annotation/Retention.html(value = https://developer.android.com/reference/java/lang/annotation/RetentionPolicy.html#SOURCE) @https://developer.android.com/reference/kotlin/androidx/annotation/IntDef(value = ) annotation https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService.Relation` |
| `@https://developer.android.com/reference/java/lang/annotation/Retention.html(value = https://developer.android.com/reference/java/lang/annotation/RetentionPolicy.html#SOURCE) @https://developer.android.com/reference/kotlin/androidx/annotation/IntDef(value = ) annotation https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService.Result` |

| ### Constants |
|---|---|
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#ACTION_CUSTOM_TABS_CONNECTION() = "android.support.customtabs.action.CustomTabsService"` The Intent action that a CustomTabsService must respond to. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#CATEGORY_AUTH_TAB() = "androidx.browser.auth.category.AuthTab"` An Intent filter category to signify that the Custom Tabs provider supports Auth Tab. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#CATEGORY_COLOR_SCHEME_CUSTOMIZATION() = "androidx.browser.customtabs.category.ColorSchemeCustomization"` An Intent filter category to signify that the Custom Tabs provider supports selecting and customizing color schemes via `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsIntent.Builder#setColorScheme(int)` and `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsIntent.Builder#setColorSchemeParams(int,androidx.browser.customtabs.CustomTabColorSchemeParams)`. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#CATEGORY_EPHEMERAL_BROWSING() = "androidx.browser.customtabs.category.EphemeralBrowsing"` An Intent filter category to signify that the Custom Tabs provider supports ephemeral browsing feature which opens Custom Tab that does not share cookies or other data with the browser that handles the Custom Tab. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#CATEGORY_NAVBAR_COLOR_CUSTOMIZATION() = "androidx.browser.customtabs.category.NavBarColorCustomization"` An Intent filter category to signify that the Custom Tabs provider supports customizing the color of the navigation bar (`https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsIntent.Builder#setNavigationBarColor(int)`). |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#CATEGORY_SET_NETWORK() = "androidx.browser.customtabs.category.SetNetwork"` An Intent filter category to signify that the Custom Tabs provider supports multi-network, bind a custom tab to a particular network via `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsIntent.Builder#setNetwork(android.net.Network)`. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#CATEGORY_TRUSTED_WEB_ACTIVITY_IMMERSIVE_MODE() = "androidx.browser.trusted.category.ImmersiveMode"` An Intent filter category to signify that the Trusted Web Activity provider supports immersive mode. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#CATEGORY_WEB_SHARE_TARGET_V2() = "androidx.browser.trusted.category.WebShareTargetV2"` An Intent filter category to signify that the Trusted Web Activity provider supports sending shared data according to the Web Share Target v2 protocol defined in https://wicg.github.io/web-share-target/level-2/. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#FILE_PURPOSE_TRUSTED_WEB_ACTIVITY_SPLASH_IMAGE() = 1` A constant to be used with `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsSession#receiveFile(android.net.Uri,int,android.os.Bundle)` indicating that the file is a splash image to be shown on top of a Trusted Web Activity while the web contents are loading. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#KEY_SUCCESS() = "androidx.browser.customtabs.SUCCESS"` The key to use to store a boolean in the returns bundle of `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#extraCommand(java.lang.String,android.os.Bundle)` method, to indicate the command is executed successfully. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#KEY_URL() = "android.support.customtabs.otherurls.URL"` For `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#mayLaunchUrl(androidx.browser.customtabs.CustomTabsSessionToken,android.net.Uri,android.os.Bundle,java.util.List<android.os.Bundle>)` calls that wants to specify more than one url, this key can be used with `https://developer.android.com/reference/android/os/Bundle.html#putParcelable(java.lang.String, android.os.Parcelable)` to insert a new url to each bundle inside list of bundles. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#RELATION_HANDLE_ALL_URLS() = 2` Used for `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsSession#validateRelationship(int,android.net.Uri,android.os.Bundle)`. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#RELATION_USE_AS_ORIGIN() = 1` Used for `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsSession#validateRelationship(int,android.net.Uri,android.os.Bundle)`. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#RESULT_FAILURE_DISALLOWED() = -1` Indicates that the postMessage request was not allowed due to a bad argument or requesting at a disallowed time like when in background. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#RESULT_FAILURE_MESSAGING_ERROR() = -3` Indicates that the postMessage request has failed due to an internal error on the browser message channel. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#RESULT_FAILURE_REMOTE_ERROR() = -2` Indicates that the postMessage request has failed due to a `https://developer.android.com/reference/android/os/RemoteException.html` . |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#RESULT_SUCCESS() = 0` Indicates that the postMessage request was accepted. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#TRUSTED_WEB_ACTIVITY_CATEGORY() = "androidx.browser.trusted.category.TrustedWebActivities"` An Intent filter category to signify that the Custom Tabs provider supports Trusted Web Activities (see `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/TrustedWebUtils` for more details). |

| ### Public constructors |
|---|
| `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#CustomTabsService()()` |

| ### Public functions |
|---|---|
| `https://developer.android.com/reference/android/os/IBinder.html` | `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#onBind(android.content.Intent)(intent: https://developer.android.com/reference/android/content/Intent.html?)` |

| ### Protected functions |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#cleanUpSession(androidx.browser.auth.AuthTabSessionToken)(sessionToken: https://developer.android.com/reference/kotlin/androidx/browser/auth/AuthTabSessionToken)` Called when the client side `https://developer.android.com/reference/android/os/IBinder.html` for this `https://developer.android.com/reference/kotlin/androidx/browser/auth/AuthTabSessionToken` is dead. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#cleanUpSession(androidx.browser.customtabs.CustomTabsSessionToken)(sessionToken: https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsSessionToken)` Called when the client side `https://developer.android.com/reference/android/os/IBinder.html` for this `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsSessionToken` is dead. |
| `abstract https://developer.android.com/reference/android/os/Bundle.html?` | `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#extraCommand(java.lang.String,android.os.Bundle)(commandName: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, args: https://developer.android.com/reference/android/os/Bundle.html?)` Unsupported commands that may be provided by the implementation. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#isEngagementSignalsApiAvailable(androidx.browser.customtabs.CustomTabsSessionToken,android.os.Bundle)( sessionToken: https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsSessionToken, extras: https://developer.android.com/reference/android/os/Bundle.html )` Returns whether the Engagement Signals API is available. |
| `abstract https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#mayLaunchUrl(androidx.browser.customtabs.CustomTabsSessionToken,android.net.Uri,android.os.Bundle,java.util.List<android.os.Bundle>)( sessionToken: https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsSessionToken, url: https://developer.android.com/reference/android/net/Uri.html?, extras: https://developer.android.com/reference/android/os/Bundle.html?, otherLikelyBundles: (https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/android/os/Bundle.html!>? )` Tells the browser of a likely future navigation to a URL. |
| `abstract https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#newSession(androidx.browser.customtabs.CustomTabsSessionToken)(sessionToken: https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsSessionToken)` Creates a new session through an ICustomTabsService with the optional callback. |
| `abstract https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `@https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService.Result https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#postMessage(androidx.browser.customtabs.CustomTabsSessionToken,java.lang.String,android.os.Bundle)( sessionToken: https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsSessionToken, message: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, extras: https://developer.android.com/reference/android/os/Bundle.html? )` Sends a postMessage request using the origin communicated via `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#requestPostMessageChannel(androidx.browser.customtabs.CustomTabsSessionToken,android.net.Uri)`. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/browser/customtabs/ExperimentalPrefetch https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#prefetch(androidx.browser.customtabs.CustomTabsSessionToken,android.net.Uri,androidx.browser.customtabs.PrefetchOptions)( sessionToken: https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsSessionToken, url: https://developer.android.com/reference/android/net/Uri.html, options: https://developer.android.com/reference/kotlin/androidx/browser/customtabs/PrefetchOptions )` Request the browser to start navigational prefetch to the page that will be used for future navigations. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/browser/customtabs/ExperimentalPrefetch https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#prefetch(androidx.browser.customtabs.CustomTabsSessionToken,java.util.List<android.net.Uri>,androidx.browser.customtabs.PrefetchOptions)( sessionToken: https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsSessionToken, urls: (https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/android/net/Uri.html!>, options: https://developer.android.com/reference/kotlin/androidx/browser/customtabs/PrefetchOptions )` Request the browser to start navigational prefetch to the page that will be used for future navigations. |
| `abstract https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#receiveFile(androidx.browser.customtabs.CustomTabsSessionToken,android.net.Uri,int,android.os.Bundle)( sessionToken: https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsSessionToken, uri: https://developer.android.com/reference/android/net/Uri.html, purpose: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, extras: https://developer.android.com/reference/android/os/Bundle.html? )` Receive a file from client by given Uri, e.g. in order to display a large bitmap in a Custom Tab. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#registerAuthTabSession(androidx.browser.auth.AuthTabSessionToken)(sessionToken: https://developer.android.com/reference/kotlin/androidx/browser/auth/AuthTabSessionToken)` Creates a new Auth Tab session through an ICustomTabsService with the optional callback. |
| `abstract https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#requestPostMessageChannel(androidx.browser.customtabs.CustomTabsSessionToken,android.net.Uri)( sessionToken: https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsSessionToken, postMessageOrigin: https://developer.android.com/reference/android/net/Uri.html )` Sends a request to create a two way postMessage channel between the client and the browser linked with the given `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsSession`. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#requestPostMessageChannel(androidx.browser.customtabs.CustomTabsSessionToken,android.net.Uri,android.net.Uri,android.os.Bundle)( sessionToken: https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsSessionToken, postMessageOrigin: https://developer.android.com/reference/android/net/Uri.html, postMessageTargetOrigin: https://developer.android.com/reference/android/net/Uri.html?, extras: https://developer.android.com/reference/android/os/Bundle.html )` Same as above method with specifying the target origin to establish communication with. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#setEngagementSignalsCallback(androidx.browser.customtabs.CustomTabsSessionToken,androidx.browser.customtabs.EngagementSignalsCallback,android.os.Bundle)( sessionToken: https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsSessionToken, callback: https://developer.android.com/reference/kotlin/androidx/browser/customtabs/EngagementSignalsCallback, extras: https://developer.android.com/reference/android/os/Bundle.html )` Sets an `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/EngagementSignalsCallback` to execute callbacks for events related to the user's engagement with the webpage within the tab. |
| `abstract https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#updateVisuals(androidx.browser.customtabs.CustomTabsSessionToken,android.os.Bundle)(sessionToken: https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsSessionToken, bundle: https://developer.android.com/reference/android/os/Bundle.html?)` Updates the visuals of custom tabs for the given session. |
| `abstract https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#validateRelationship(androidx.browser.customtabs.CustomTabsSessionToken,int,android.net.Uri,android.os.Bundle)( sessionToken: https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsSessionToken, @https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService.Relation relation: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, origin: https://developer.android.com/reference/android/net/Uri.html, extras: https://developer.android.com/reference/android/os/Bundle.html? )` Request to validate a relationship between the application and an origin. |
| `abstract https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#warmup(long)(flags: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)` Warms up the browser process asynchronously. |

### Inherited Constants

From [android.content.ComponentCallbacks2](https://developer.android.com/reference/android/content/ComponentCallbacks2.html) `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/ComponentCallbacks2.html#TRIM_MEMORY_BACKGROUND = 40` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/ComponentCallbacks2.html#TRIM_MEMORY_COMPLETE = 80`

**This property is deprecated.**
`const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/ComponentCallbacks2.html#TRIM_MEMORY_MODERATE = 60`

**This property is deprecated.**
`const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/ComponentCallbacks2.html#TRIM_MEMORY_RUNNING_CRITICAL = 15`

**This property is deprecated.**
`const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/ComponentCallbacks2.html#TRIM_MEMORY_RUNNING_LOW = 10`

**This property is deprecated.**
`const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/ComponentCallbacks2.html#TRIM_MEMORY_RUNNING_MODERATE = 5`

**This property is deprecated.**
`const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/ComponentCallbacks2.html#TRIM_MEMORY_UI_HIDDEN = 20` From [android.content.Context](https://developer.android.com/reference/android/content/Context.html) `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#ACCESSIBILITY_SERVICE = "accessibility"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#ACCOUNT_SERVICE = "account"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#ACTIVITY_SERVICE = "activity"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#ADVANCED_PROTECTION_SERVICE = "advanced_protection"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#ALARM_SERVICE = "alarm"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#APPWIDGET_SERVICE = "appwidget"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#APP_FUNCTION_SERVICE = "app_function"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#APP_OPS_SERVICE = "appops"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#APP_SEARCH_SERVICE = "app_search"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#AUDIO_SERVICE = "audio"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#AUTOFILL_SERVICE = "autofill"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#BATTERY_SERVICE = "batterymanager"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/Context.html#BIND_ABOVE_CLIENT = 8` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/Context.html#BIND_ADJUST_WITH_ACTIVITY = 128` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/Context.html#BIND_ALLOW_ACTIVITY_STARTS = 512` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/Context.html#BIND_ALLOW_OOM_MANAGEMENT = 16` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/Context.html#BIND_AUTO_CREATE = 1` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/Context.html#BIND_DEBUG_UNBIND = 2` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/Context.html#BIND_EXTERNAL_SERVICE = -2147483648` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` `https://developer.android.com/reference/android/content/Context.html#BIND_EXTERNAL_SERVICE_LONG = 4611686018427387904` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/Context.html#BIND_IMPORTANT = 64` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/Context.html#BIND_INCLUDE_CAPABILITIES = 4096` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/Context.html#BIND_NOT_FOREGROUND = 4` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/Context.html#BIND_NOT_PERCEPTIBLE = 256` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/Context.html#BIND_PACKAGE_ISOLATED_PROCESS = 16384` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/Context.html#BIND_SHARED_ISOLATED_PROCESS = 8192` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/Context.html#BIND_WAIVE_PRIORITY = 32` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#BIOMETRIC_SERVICE = "biometric"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#BLOB_STORE_SERVICE = "blob_store"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#BLUETOOTH_SERVICE = "bluetooth"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#BUGREPORT_SERVICE = "bugreport"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#CAMERA_SERVICE = "camera"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#CAPTIONING_SERVICE = "captioning"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#CARRIER_CONFIG_SERVICE = "carrier_config"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#CHOOSER_SERVICE = "chooser"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#CLIPBOARD_SERVICE = "clipboard"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#COMPANION_DEVICE_SERVICE = "companiondevice"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#CONNECTIVITY_DIAGNOSTICS_SERVICE = "connectivity_diagnostics"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#CONNECTIVITY_SERVICE = "connectivity"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#CONSUMER_IR_SERVICE = "consumer_ir"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#CONTACT_KEYS_SERVICE = "contact_keys"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/Context.html#CONTEXT_IGNORE_SECURITY = 2` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/Context.html#CONTEXT_INCLUDE_CODE = 1` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/Context.html#CONTEXT_RESTRICTED = 4` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#CREDENTIAL_SERVICE = "credential"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#CROSS_PROFILE_APPS_SERVICE = "crossprofileapps"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/Context.html#DEVICE_ID_DEFAULT = 0` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/Context.html#DEVICE_ID_INVALID = -1` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#DEVICE_LOCK_SERVICE = "device_lock"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#DEVICE_POLICY_SERVICE = "device_policy"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#DISPLAY_HASH_SERVICE = "display_hash"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#DISPLAY_SERVICE = "display"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#DOMAIN_VERIFICATION_SERVICE = "domain_verification"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#DOWNLOAD_SERVICE = "download"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#DROPBOX_SERVICE = "dropbox"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#EUICC_SERVICE = "euicc"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#FILE_INTEGRITY_SERVICE = "file_integrity"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#FILE_SERVICE = "file"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#GAME_SERVICE = "game"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#GRAMMATICAL_INFLECTION_SERVICE = "grammatical_inflection"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#HARDWARE_PROPERTIES_SERVICE = "hardware_properties"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#HEALTHCONNECT_SERVICE = "healthconnect"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#INPUT_METHOD_SERVICE = "input_method"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#INPUT_SERVICE = "input"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#IPSEC_SERVICE = "ipsec"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#JOB_SCHEDULER_SERVICE = "jobscheduler"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#KEYGUARD_SERVICE = "keyguard"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#KEYSTORE_SERVICE = "keystore"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#LAUNCHER_APPS_SERVICE = "launcherapps"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#LAYOUT_INFLATER_SERVICE = "layout_inflater"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#LOCALE_SERVICE = "locale"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#LOCATION_SERVICE = "location"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#MEDIA_COMMUNICATION_SERVICE = "media_communication"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#MEDIA_METRICS_SERVICE = "media_metrics"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#MEDIA_PROJECTION_SERVICE = "media_projection"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#MEDIA_QUALITY_SERVICE = "media_quality"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#MEDIA_ROUTER_SERVICE = "media_router"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#MEDIA_SESSION_SERVICE = "media_session"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#MIDI_SERVICE = "midi"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/Context.html#MODE_APPEND = 32768` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/Context.html#MODE_ENABLE_WRITE_AHEAD_LOGGING = 8` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/Context.html#MODE_MULTI_PROCESS = 4`

**This property is deprecated.**
`const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/Context.html#MODE_NO_LOCALIZED_COLLATORS = 16` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/Context.html#MODE_PRIVATE = 0` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/Context.html#MODE_WORLD_READABLE = 1`

**This property is deprecated.**
`const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/Context.html#MODE_WORLD_WRITEABLE = 2`

**This property is deprecated.**
`const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#NETWORK_STATS_SERVICE = "netstats"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#NFC_SERVICE = "nfc"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#NOTIFICATION_SERVICE = "notification"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#NPU_SERVICE = "npu"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#NSD_SERVICE = "servicediscovery"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#OVERLAY_SERVICE = "overlay"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#PCC_SANDBOX_SERVICE = "pcc_sandbox"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#PEOPLE_SERVICE = "people"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#PERFORMANCE_HINT_SERVICE = "performance_hint"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#PERSISTENT_DATA_BLOCK_SERVICE = "persistent_data_block"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#POWER_SERVICE = "power"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#PRINT_SERVICE = "print"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#PROFILING_SERVICE = "profiling"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/Context.html#RECEIVER_EXPORTED = 2` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/Context.html#RECEIVER_NOT_EXPORTED = 4` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/Context.html#RECEIVER_VISIBLE_TO_INSTANT_APPS = 1` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#RESTRICTIONS_SERVICE = "restrictions"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#ROLE_SERVICE = "role"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#SATELLITE_SERVICE = "satellite"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#SEARCH_SERVICE = "search"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#SECURITY_STATE_SERVICE = "security_state"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#SENSOR_SERVICE = "sensor"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#SERIAL_SERVICE = "serial"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#SHORTCUT_SERVICE = "shortcut"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#STATUS_BAR_SERVICE = "statusbar"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#STORAGE_SERVICE = "storage"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#STORAGE_STATS_SERVICE = "storagestats"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#SYSTEM_HEALTH_SERVICE = "systemhealth"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#TELECOM_SERVICE = "telecom"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#TELEPHONY_IMS_SERVICE = "telephony_ims"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#TELEPHONY_PHONE_NUMBER_SERVICE = "telephony_phone_number"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#TELEPHONY_SERVICE = "phone"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#TELEPHONY_SUBSCRIPTION_SERVICE = "telephony_subscription_service"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#TETHERING_SERVICE = "tethering"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#TEXT_CLASSIFICATION_SERVICE = "textclassification"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#TEXT_SERVICES_MANAGER_SERVICE = "textservices"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#TV_AD_SERVICE = "tv_ad"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#TV_INPUT_SERVICE = "tv_input"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#TV_INTERACTIVE_APP_SERVICE = "tv_interactive_app"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#UI_MODE_SERVICE = "uimode"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#USAGE_STATS_SERVICE = "usagestats"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#USB_SERVICE = "usb"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#USER_SERVICE = "user"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#VIBRATOR_MANAGER_SERVICE = "vibrator_manager"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#VIBRATOR_SERVICE = "vibrator"`

**This property is deprecated.**
`const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#VIRTUAL_DEVICE_SERVICE = "virtualdevice"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#VPN_MANAGEMENT_SERVICE = "vpn_management"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#WALLPAPER_SERVICE = "wallpaper"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#WEB_APP_SERVICE = "web_app"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#WIFI_AWARE_SERVICE = "wifiaware"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#WIFI_P2P_SERVICE = "wifip2p"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#WIFI_RTT_RANGING_SERVICE = "wifirtt"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#WIFI_SERVICE = "wifi"` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#WINDOW_SERVICE = "window"` From [android.app.Service](https://developer.android.com/reference/android/app/Service.html) `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/app/Service.html#START_CONTINUATION_MASK = 15` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/app/Service.html#START_FLAG_REDELIVERY = 1` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/app/Service.html#START_FLAG_RETRY = 2` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/app/Service.html#START_NOT_STICKY = 2` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/app/Service.html#START_REDELIVER_INTENT = 3` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/app/Service.html#START_STICKY = 1` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/app/Service.html#START_STICKY_COMPATIBILITY = 0` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/app/Service.html#STOP_FOREGROUND_DETACH = 2` `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/app/Service.html#STOP_FOREGROUND_LEGACY = 0`

**This property is deprecated.**
`const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/app/Service.html#STOP_FOREGROUND_REMOVE = 1`

### Inherited functions

From [android.content.Context](https://developer.android.com/reference/android/content/Context.html) `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/Context.html#getColor(int)(id: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` `https://developer.android.com/reference/android/content/res/ColorStateList.html!` `https://developer.android.com/reference/android/content/Context.html#getColorStateList(int)(id: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` `https://developer.android.com/reference/android/graphics/drawable/Drawable.html!` `https://developer.android.com/reference/android/content/Context.html#getDrawable(int)(id: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/Context.html#getString(int)(resId: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` `T!` `<T> https://developer.android.com/reference/android/content/Context.html#getSystemService(java.lang.Class&lt;T&gt;)(serviceClass: https://developer.android.com/reference/java/lang/Class.html<T!>!)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-char-sequence/index.html!` `https://developer.android.com/reference/android/content/Context.html#getText(int)(resId: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` `https://developer.android.com/reference/android/content/Context.BindServiceFlags.html!` `https://developer.android.com/reference/android/content/Context.html#getUpdateableFlags()()` `https://developer.android.com/reference/android/content/res/TypedArray.html!` `https://developer.android.com/reference/android/content/Context.html#obtainStyledAttributes(android.util.AttributeSet, int[])(set: https://developer.android.com/reference/android/util/AttributeSet.html!, attrs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html>!)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/content/Context.html#revokeSelfPermissionOnKill(java.lang.String)(permName: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/content/Context.html#sendBroadcastWithMultiplePermissions(android.content.Intent, java.lang.String[])(

intent: https://developer.android.com/reference/android/content/Intent.html!,

receiverPermissions: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!>!

)` From [android.content.ContextWrapper](https://developer.android.com/reference/android/content/ContextWrapper.html) `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#bindIsolatedService(android.content.Intent, int, java.lang.String, java.util.concurrent.Executor, android.content.ServiceConnection)(

service: https://developer.android.com/reference/android/content/Intent.html!,

flags: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html,

instanceName: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!,

executor: https://developer.android.com/reference/java/util/concurrent/Executor.html!,

conn: https://developer.android.com/reference/android/content/ServiceConnection.html!

)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#bindService(android.content.Intent, android.content.Context.BindServiceFlags, java.util.concurrent.Executor, android.content.ServiceConnection)(

service: https://developer.android.com/reference/android/content/Intent.html!,

flags: https://developer.android.com/reference/android/content/Context.BindServiceFlags.html!,

executor: https://developer.android.com/reference/java/util/concurrent/Executor.html!,

conn: https://developer.android.com/reference/android/content/ServiceConnection.html!

)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#bindServiceAsUser(android.content.Intent, android.content.ServiceConnection, android.content.Context.BindServiceFlags, android.os.UserHandle)(

service: https://developer.android.com/reference/android/content/Intent.html!,

conn: https://developer.android.com/reference/android/content/ServiceConnection.html!,

flags: https://developer.android.com/reference/android/content/Context.BindServiceFlags.html!,

user: https://developer.android.com/reference/android/os/UserHandle.html!

)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#checkCallingOrSelfPermission(java.lang.String)(permission: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#checkCallingOrSelfUriPermission(android.net.Uri, int)(uri: https://developer.android.com/reference/android/net/Uri.html!, modeFlags: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html>!` `https://developer.android.com/reference/android/content/ContextWrapper.html#checkCallingOrSelfUriPermissions(java.util.List&lt;android.net.Uri&gt;, int)(

uris: (https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/android/net/Uri.html!>!,

modeFlags: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html

)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#checkCallingPermission(java.lang.String)(permission: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#checkCallingUriPermission(android.net.Uri, int)(uri: https://developer.android.com/reference/android/net/Uri.html!, modeFlags: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html>!` `https://developer.android.com/reference/android/content/ContextWrapper.html#checkCallingUriPermissions(java.util.List&lt;android.net.Uri&gt;, int)(uris: (https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/android/net/Uri.html!>!, modeFlags: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#checkContentUriPermissionFull(android.net.Uri, int, int, int)(uri: https://developer.android.com/reference/android/net/Uri.html!, pid: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, uid: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, modeFlags: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#checkPermission(java.lang.String, int, int)(permission: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!, pid: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, uid: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#checkSelfPermission(java.lang.String)(permission: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#checkUriPermission(android.net.Uri, int, int, int)(uri: https://developer.android.com/reference/android/net/Uri.html!, pid: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, uid: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, modeFlags: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html>!` `https://developer.android.com/reference/android/content/ContextWrapper.html#checkUriPermissions(java.util.List&lt;android.net.Uri&gt;, int, int, int)(

uris: (https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/android/net/Uri.html!>!,

pid: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html,

uid: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html,

modeFlags: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html

)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#clearWallpaper()()`

**This function is deprecated.**
`https://developer.android.com/reference/android/content/Context.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#createAttributionContext(java.lang.String)(attributionTag: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!)` `https://developer.android.com/reference/android/content/Context.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#createConfigurationContext(android.content.res.Configuration)(overrideConfiguration: https://developer.android.com/reference/android/content/res/Configuration.html!)` `https://developer.android.com/reference/android/content/Context.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#createContext(android.content.ContextParams)(contextParams: https://developer.android.com/reference/android/content/ContextParams.html!)` `https://developer.android.com/reference/android/content/Context.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#createContextForSplit(java.lang.String)(splitName: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!)` `https://developer.android.com/reference/android/content/Context.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#createDeviceContext(int)(deviceId: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` `https://developer.android.com/reference/android/content/Context.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#createDeviceProtectedStorageContext()()` `https://developer.android.com/reference/android/content/Context.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#createDisplayContext(android.view.Display)(display: https://developer.android.com/reference/android/view/Display.html!)` `https://developer.android.com/reference/android/content/Context.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#createPackageContext(java.lang.String, int)(packageName: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!, flags: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` `https://developer.android.com/reference/android/content/Context.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#createWindowContext(android.view.Display, int, android.os.Bundle)(display: https://developer.android.com/reference/android/view/Display.html!, type: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, options: https://developer.android.com/reference/android/os/Bundle.html!)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!>!` `https://developer.android.com/reference/android/content/ContextWrapper.html#databaseList()()` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#deleteDatabase(java.lang.String)(name: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#deleteFile(java.lang.String)(name: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#deleteSharedPreferences(java.lang.String)(name: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#enforceCallingOrSelfPermission(java.lang.String, java.lang.String)(permission: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!, message: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#enforceCallingOrSelfUriPermission(android.net.Uri, int, java.lang.String)(

uri: https://developer.android.com/reference/android/net/Uri.html!,

modeFlags: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html,

message: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!

)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#enforceCallingPermission(java.lang.String, java.lang.String)(permission: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!, message: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#enforceCallingUriPermission(android.net.Uri, int, java.lang.String)(uri: https://developer.android.com/reference/android/net/Uri.html!, modeFlags: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, message: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#enforcePermission(java.lang.String, int, int, java.lang.String)(permission: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!, pid: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, uid: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, message: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#enforceUriPermission(android.net.Uri, int, int, int, java.lang.String)(

uri: https://developer.android.com/reference/android/net/Uri.html!,

pid: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html,

uid: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html,

modeFlags: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html,

message: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!

)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!>!` `https://developer.android.com/reference/android/content/ContextWrapper.html#fileList()()` `https://developer.android.com/reference/android/content/Context.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#getApplicationContext()()` `https://developer.android.com/reference/android/content/pm/ApplicationInfo.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#getApplicationInfo()()` `https://developer.android.com/reference/android/content/res/AssetManager.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#getAssets()()` `https://developer.android.com/reference/android/content/AttributionSource.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#getAttributionSource()()` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#getAttributionTag()()` `https://developer.android.com/reference/android/content/Context.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#getBaseContext()()` `https://developer.android.com/reference/java/io/File.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#getCacheDir()()` `https://developer.android.com/reference/java/lang/ClassLoader.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#getClassLoader()()` `https://developer.android.com/reference/java/io/File.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#getCodeCacheDir()()` `https://developer.android.com/reference/android/content/ContentResolver.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#getContentResolver()()` `https://developer.android.com/reference/java/io/File.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#getDataDir()()` `https://developer.android.com/reference/java/io/File.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#getDatabasePath(java.lang.String)(name: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#getDeviceId()()` `https://developer.android.com/reference/java/io/File.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#getDir(java.lang.String, int)(name: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!, mode: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` `https://developer.android.com/reference/android/view/Display.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#getDisplay()()` `https://developer.android.com/reference/java/io/File.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#getExternalCacheDir()()` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://developer.android.com/reference/java/io/File.html!>!` `https://developer.android.com/reference/android/content/ContextWrapper.html#getExternalCacheDirs()()` `https://developer.android.com/reference/java/io/File.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#getExternalFilesDir(java.lang.String)(type: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://developer.android.com/reference/java/io/File.html!>!` `https://developer.android.com/reference/android/content/ContextWrapper.html#getExternalFilesDirs(java.lang.String)(type: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://developer.android.com/reference/java/io/File.html!>!` `https://developer.android.com/reference/android/content/ContextWrapper.html#getExternalMediaDirs()()`

**This function is deprecated.**
`https://developer.android.com/reference/java/io/File.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#getFileStreamPath(java.lang.String)(name: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!)` `https://developer.android.com/reference/java/io/File.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#getFilesDir()()` `https://developer.android.com/reference/java/util/concurrent/Executor.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#getMainExecutor()()` `https://developer.android.com/reference/android/os/Looper.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#getMainLooper()()` `https://developer.android.com/reference/java/io/File.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#getNoBackupFilesDir()()` `https://developer.android.com/reference/java/io/File.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#getObbDir()()` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://developer.android.com/reference/java/io/File.html!>!` `https://developer.android.com/reference/android/content/ContextWrapper.html#getObbDirs()()` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#getOpPackageName()()` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#getPackageCodePath()()` `https://developer.android.com/reference/android/content/pm/PackageManager.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#getPackageManager()()` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#getPackageName()()` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#getPackageResourcePath()()` `https://developer.android.com/reference/android/content/ContextParams.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#getParams()()` `https://developer.android.com/reference/android/content/res/Resources.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#getResources()()` `https://developer.android.com/reference/android/content/SharedPreferences.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#getSharedPreferences(java.lang.String, int)(name: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!, mode: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#getSystemService(java.lang.String)(name: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#getSystemServiceName(java.lang.Class&lt;?&gt;)(serviceClass: https://developer.android.com/reference/java/lang/Class.html<*>!)` `https://developer.android.com/reference/android/content/res/Resources.Theme.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#getTheme()()` `https://developer.android.com/reference/android/graphics/drawable/Drawable.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#getWallpaper()()`

**This function is deprecated.**
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#getWallpaperDesiredMinimumHeight()()`

**This function is deprecated.**
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#getWallpaperDesiredMinimumWidth()()`

**This function is deprecated.**
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#grantUriPermission(java.lang.String, android.net.Uri, int)(toPackage: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!, uri: https://developer.android.com/reference/android/net/Uri.html!, modeFlags: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#isDeviceProtectedStorage()()` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#isRestricted()()` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#isUiContext()()` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#moveDatabaseFrom(android.content.Context, java.lang.String)(sourceContext: https://developer.android.com/reference/android/content/Context.html!, name: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#moveSharedPreferencesFrom(android.content.Context, java.lang.String)(sourceContext: https://developer.android.com/reference/android/content/Context.html!, name: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!)` `https://developer.android.com/reference/java/io/FileInputStream.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#openFileInput(java.lang.String)(name: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!)` `https://developer.android.com/reference/java/io/FileOutputStream.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#openFileOutput(java.lang.String, int)(name: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!, mode: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#openOrCreateDatabase(java.lang.String, int, android.database.sqlite.SQLiteDatabase.CursorFactory)(

name: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!,

mode: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html,

factory: https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.CursorFactory.html!

)` `https://developer.android.com/reference/android/graphics/drawable/Drawable.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#peekWallpaper()()`

**This function is deprecated.**
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#rebindService(android.content.ServiceConnection, android.content.Context.BindServiceFlags)(conn: https://developer.android.com/reference/android/content/ServiceConnection.html!, flags: https://developer.android.com/reference/android/content/Context.BindServiceFlags.html!)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#registerComponentCallbacks(android.content.ComponentCallbacks)(callback: https://developer.android.com/reference/android/content/ComponentCallbacks.html!)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#registerDeviceIdChangeListener(java.util.concurrent.Executor, java.util.function.IntConsumer)(executor: https://developer.android.com/reference/java/util/concurrent/Executor.html!, listener: https://developer.android.com/reference/java/util/function/IntConsumer.html!)` `https://developer.android.com/reference/android/content/Intent.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#registerReceiver(android.content.BroadcastReceiver, android.content.IntentFilter)(receiver: https://developer.android.com/reference/android/content/BroadcastReceiver.html!, filter: https://developer.android.com/reference/android/content/IntentFilter.html!)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#removeStickyBroadcast(android.content.Intent)(intent: https://developer.android.com/reference/android/content/Intent.html!)`

**This function is deprecated.**
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#removeStickyBroadcastAsUser(android.content.Intent, android.os.UserHandle)(intent: https://developer.android.com/reference/android/content/Intent.html!, user: https://developer.android.com/reference/android/os/UserHandle.html!)`

**This function is deprecated.**
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#revokeSelfPermissionsOnKill(java.util.Collection&lt;java.lang.String&gt;)(permissions: (https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-collection/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-collection/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!>!)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#revokeUriPermission(android.net.Uri, int)(uri: https://developer.android.com/reference/android/net/Uri.html!, modeFlags: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#sendBroadcast(android.content.Intent)(intent: https://developer.android.com/reference/android/content/Intent.html!)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#sendBroadcastAsUser(android.content.Intent, android.os.UserHandle)(intent: https://developer.android.com/reference/android/content/Intent.html!, user: https://developer.android.com/reference/android/os/UserHandle.html!)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#sendOrderedBroadcast(android.content.Intent, int, java.lang.String, java.lang.String, android.content.BroadcastReceiver, android.os.Handler, java.lang.String, android.os.Bundle, android.os.Bundle)(

intent: https://developer.android.com/reference/android/content/Intent.html!,

initialCode: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html,

receiverPermission: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!,

receiverAppOp: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!,

resultReceiver: https://developer.android.com/reference/android/content/BroadcastReceiver.html!,

scheduler: https://developer.android.com/reference/android/os/Handler.html!,

initialData: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!,

initialExtras: https://developer.android.com/reference/android/os/Bundle.html!,

options: https://developer.android.com/reference/android/os/Bundle.html!

)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#sendOrderedBroadcastAsUser(android.content.Intent, android.os.UserHandle, java.lang.String, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)(

intent: https://developer.android.com/reference/android/content/Intent.html!,

user: https://developer.android.com/reference/android/os/UserHandle.html!,

receiverPermission: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!,

resultReceiver: https://developer.android.com/reference/android/content/BroadcastReceiver.html!,

scheduler: https://developer.android.com/reference/android/os/Handler.html!,

initialCode: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html,

initialData: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!,

initialExtras: https://developer.android.com/reference/android/os/Bundle.html!

)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#sendStickyBroadcast(android.content.Intent)(intent: https://developer.android.com/reference/android/content/Intent.html!)`

**This function is deprecated.**
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#sendStickyBroadcastAsUser(android.content.Intent, android.os.UserHandle)(intent: https://developer.android.com/reference/android/content/Intent.html!, user: https://developer.android.com/reference/android/os/UserHandle.html!)`

**This function is deprecated.**
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#sendStickyOrderedBroadcast(android.content.Intent, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)(

intent: https://developer.android.com/reference/android/content/Intent.html!,

resultReceiver: https://developer.android.com/reference/android/content/BroadcastReceiver.html!,

scheduler: https://developer.android.com/reference/android/os/Handler.html!,

initialCode: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html,

initialData: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!,

initialExtras: https://developer.android.com/reference/android/os/Bundle.html!

)`

**This function is deprecated.**
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#sendStickyOrderedBroadcastAsUser(android.content.Intent, android.os.UserHandle, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)(

intent: https://developer.android.com/reference/android/content/Intent.html!,

user: https://developer.android.com/reference/android/os/UserHandle.html!,

resultReceiver: https://developer.android.com/reference/android/content/BroadcastReceiver.html!,

scheduler: https://developer.android.com/reference/android/os/Handler.html!,

initialCode: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html,

initialData: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!,

initialExtras: https://developer.android.com/reference/android/os/Bundle.html!

)`

**This function is deprecated.**
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#setTheme(int)(resid: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#setWallpaper(android.graphics.Bitmap)(bitmap: https://developer.android.com/reference/android/graphics/Bitmap.html!)`

**This function is deprecated.**
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#startActivities(android.content.Intent[])(intents: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://developer.android.com/reference/android/content/Intent.html!>!)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#startActivity(android.content.Intent)(intent: https://developer.android.com/reference/android/content/Intent.html!)` `https://developer.android.com/reference/android/content/ComponentName.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#startForegroundService(android.content.Intent)(service: https://developer.android.com/reference/android/content/Intent.html!)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#startInstrumentation(android.content.ComponentName, java.lang.String, android.os.Bundle)(

className: https://developer.android.com/reference/android/content/ComponentName.html!,

profileFile: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!,

arguments: https://developer.android.com/reference/android/os/Bundle.html!

)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#startIntentSender(android.content.IntentSender, android.content.Intent, int, int, int)(

intent: https://developer.android.com/reference/android/content/IntentSender.html!,

fillInIntent: https://developer.android.com/reference/android/content/Intent.html!,

flagsMask: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html,

flagsValues: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html,

extraFlags: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html

)` `https://developer.android.com/reference/android/content/ComponentName.html!` `https://developer.android.com/reference/android/content/ContextWrapper.html#startService(android.content.Intent)(service: https://developer.android.com/reference/android/content/Intent.html!)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#stopService(android.content.Intent)(name: https://developer.android.com/reference/android/content/Intent.html!)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#unbindService(android.content.ServiceConnection)(conn: https://developer.android.com/reference/android/content/ServiceConnection.html!)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#unregisterComponentCallbacks(android.content.ComponentCallbacks)(callback: https://developer.android.com/reference/android/content/ComponentCallbacks.html!)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#unregisterDeviceIdChangeListener(java.util.function.IntConsumer)(listener: https://developer.android.com/reference/java/util/function/IntConsumer.html!)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#unregisterReceiver(android.content.BroadcastReceiver)(receiver: https://developer.android.com/reference/android/content/BroadcastReceiver.html!)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#updateServiceBindings(java.util.Collection&lt;android.content.Context.UpdateBindingParams&gt;)(

params: (https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-collection/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-collection/index.html<https://developer.android.com/reference/android/content/Context.UpdateBindingParams.html!>!

)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/content/ContextWrapper.html#updateServiceGroup(android.content.ServiceConnection, int, int)(conn: https://developer.android.com/reference/android/content/ServiceConnection.html!, group: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, importance: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` From [android.app.Service](https://developer.android.com/reference/android/app/Service.html) `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/app/Service.html#attachBaseContext(android.content.Context)(newBase: https://developer.android.com/reference/android/content/Context.html!)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/app/Service.html#dump(java.io.FileDescriptor, java.io.PrintWriter, java.lang.String[])(fd: https://developer.android.com/reference/java/io/FileDescriptor.html!, writer: https://developer.android.com/reference/java/io/PrintWriter.html!, args: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!>!)` `https://developer.android.com/reference/android/app/Application.html!` `https://developer.android.com/reference/android/app/Service.html#getApplication()()` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/app/Service.html#getForegroundServiceType()()` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/app/Service.html#onConfigurationChanged(android.content.res.Configuration)(newConfig: https://developer.android.com/reference/android/content/res/Configuration.html!)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/app/Service.html#onCreate()()` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/app/Service.html#onDestroy()()` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/app/Service.html#onLowMemory()()`

**This function is deprecated.**
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/app/Service.html#onRebind(android.content.Intent)(intent: https://developer.android.com/reference/android/content/Intent.html!)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/app/Service.html#onStart(android.content.Intent, int)(intent: https://developer.android.com/reference/android/content/Intent.html!, startId: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`

**This function is deprecated.**
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/android/app/Service.html#onStartCommand(android.content.Intent, int, int)(intent: https://developer.android.com/reference/android/content/Intent.html!, flags: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, startId: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/app/Service.html#onTaskRemoved(android.content.Intent)(rootIntent: https://developer.android.com/reference/android/content/Intent.html!)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/app/Service.html#onTimeout(int)(startId: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/app/Service.html#onTrimMemory(int)(level: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `https://developer.android.com/reference/android/app/Service.html#onUnbind(android.content.Intent)(intent: https://developer.android.com/reference/android/content/Intent.html!)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/app/Service.html#startForeground(int, android.app.Notification)(id: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, notification: https://developer.android.com/reference/android/app/Notification.html!)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/app/Service.html#stopForeground(boolean)(removeNotification: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)`

**This function is deprecated.**
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/android/app/Service.html#stopSelf()()` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `https://developer.android.com/reference/android/app/Service.html#stopSelfResult(int)(startId: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`

## Constants

### ACTION_CUSTOM_TABS_CONNECTION

Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/browser#1.2.0)

```
const val ACTION_CUSTOM_TABS_CONNECTION = "android.support.customtabs.action.CustomTabsService": String!
```

The Intent action that a CustomTabsService must respond to.

### CATEGORY_AUTH_TAB

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/browser#1.9.0)

```
const val CATEGORY_AUTH_TAB = "androidx.browser.auth.category.AuthTab": String!
```

An Intent filter category to signify that the Custom Tabs provider supports Auth Tab.

### CATEGORY_COLOR_SCHEME_CUSTOMIZATION

Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/browser#1.2.0)

```
const val CATEGORY_COLOR_SCHEME_CUSTOMIZATION = "androidx.browser.customtabs.category.ColorSchemeCustomization": String!
```

An Intent filter category to signify that the Custom Tabs provider supports selecting and customizing color schemes via `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsIntent.Builder#setColorScheme(int)` and `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsIntent.Builder#setColorSchemeParams(int,androidx.browser.customtabs.CustomTabColorSchemeParams)`.

### CATEGORY_EPHEMERAL_BROWSING

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/browser#1.9.0)

```
const val CATEGORY_EPHEMERAL_BROWSING = "androidx.browser.customtabs.category.EphemeralBrowsing": String!
```

An Intent filter category to signify that the Custom Tabs provider supports ephemeral browsing feature which opens Custom Tab that does not share cookies or other data with the browser that handles the Custom Tab.

### CATEGORY_NAVBAR_COLOR_CUSTOMIZATION

Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/browser#1.2.0)

```
const val CATEGORY_NAVBAR_COLOR_CUSTOMIZATION = "androidx.browser.customtabs.category.NavBarColorCustomization": String!
```

An Intent filter category to signify that the Custom Tabs provider supports customizing the color of the navigation bar (`https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsIntent.Builder#setNavigationBarColor(int)`).

### CATEGORY_SET_NETWORK

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/browser#1.9.0)

```
const val CATEGORY_SET_NETWORK = "androidx.browser.customtabs.category.SetNetwork": String!
```

An Intent filter category to signify that the Custom Tabs provider supports multi-network, bind a custom tab to a particular network via `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsIntent.Builder#setNetwork(android.net.Network)`.

### CATEGORY_TRUSTED_WEB_ACTIVITY_IMMERSIVE_MODE

Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/browser#1.2.0)

```
const val CATEGORY_TRUSTED_WEB_ACTIVITY_IMMERSIVE_MODE = "androidx.browser.trusted.category.ImmersiveMode": String!
```

An Intent filter category to signify that the Trusted Web Activity provider supports immersive mode.

### CATEGORY_WEB_SHARE_TARGET_V2

Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/browser#1.2.0)

```
const val CATEGORY_WEB_SHARE_TARGET_V2 = "androidx.browser.trusted.category.WebShareTargetV2": String!
```

An Intent filter category to signify that the Trusted Web Activity provider supports sending shared data according to the Web Share Target v2 protocol defined in https://wicg.github.io/web-share-target/level-2/.

### FILE_PURPOSE_TRUSTED_WEB_ACTIVITY_SPLASH_IMAGE

Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/browser#1.2.0)

```
const val FILE_PURPOSE_TRUSTED_WEB_ACTIVITY_SPLASH_IMAGE = 1: Int
```

A constant to be used with `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsSession#receiveFile(android.net.Uri,int,android.os.Bundle)` indicating that the file is a splash image to be shown on top of a Trusted Web Activity while the web contents are loading.

### KEY_SUCCESS

Added in [1.3.0](https://developer.android.com/jetpack/androidx/releases/browser#1.3.0)

```
const val KEY_SUCCESS = "androidx.browser.customtabs.SUCCESS": String!
```

The key to use to store a boolean in the returns bundle of `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#extraCommand(java.lang.String,android.os.Bundle)` method, to indicate the command is executed successfully.

### KEY_URL

Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/browser#1.2.0)

```
const val KEY_URL = "android.support.customtabs.otherurls.URL": String!
```

For `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#mayLaunchUrl(androidx.browser.customtabs.CustomTabsSessionToken,android.net.Uri,android.os.Bundle,java.util.List<android.os.Bundle>)` calls that wants to specify more than one url, this key can be used with `https://developer.android.com/reference/android/os/Bundle.html#putParcelable(java.lang.String, android.os.Parcelable)` to insert a new url to each bundle inside list of bundles.

### RELATION_HANDLE_ALL_URLS

Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/browser#1.2.0)

```
const val RELATION_HANDLE_ALL_URLS = 2: Int
```

Used for `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsSession#validateRelationship(int,android.net.Uri,android.os.Bundle)`. Requests the ability to handle all URLs from a given origin.

### RELATION_USE_AS_ORIGIN

Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/browser#1.2.0)

```
const val RELATION_USE_AS_ORIGIN = 1: Int
```

Used for `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsSession#validateRelationship(int,android.net.Uri,android.os.Bundle)`. For App -\> Web transitions, requests the app to use the declared origin to be used as origin for the client app in the web APIs context.

### RESULT_FAILURE_DISALLOWED

Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/browser#1.2.0)

```
const val RESULT_FAILURE_DISALLOWED = -1: Int
```

Indicates that the postMessage request was not allowed due to a bad argument or requesting at a disallowed time like when in background.

### RESULT_FAILURE_MESSAGING_ERROR

Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/browser#1.2.0)

```
const val RESULT_FAILURE_MESSAGING_ERROR = -3: Int
```

Indicates that the postMessage request has failed due to an internal error on the browser message channel.

### RESULT_FAILURE_REMOTE_ERROR

Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/browser#1.2.0)

```
const val RESULT_FAILURE_REMOTE_ERROR = -2: Int
```

Indicates that the postMessage request has failed due to a `https://developer.android.com/reference/android/os/RemoteException.html` .

### RESULT_SUCCESS

Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/browser#1.2.0)

```
const val RESULT_SUCCESS = 0: Int
```

Indicates that the postMessage request was accepted.

### TRUSTED_WEB_ACTIVITY_CATEGORY

Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/browser#1.2.0)

```
const val TRUSTED_WEB_ACTIVITY_CATEGORY = "androidx.browser.trusted.category.TrustedWebActivities": String!
```

An Intent filter category to signify that the Custom Tabs provider supports Trusted Web Activities (see `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/TrustedWebUtils` for more details).

## Public constructors

### CustomTabsService

Added in 1.2.0

```
CustomTabsService()
```

## Public functions

### onBind

Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/browser#1.2.0)

```
fun onBind(intent: Intent?): IBinder
```

## Protected functions

### cleanUpSession

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/browser#1.9.0)

```
protected fun cleanUpSession(sessionToken: AuthTabSessionToken): Boolean
```

Called when the client side `https://developer.android.com/reference/android/os/IBinder.html` for this `https://developer.android.com/reference/kotlin/androidx/browser/auth/AuthTabSessionToken` is dead. Can also be used to clean up `https://developer.android.com/reference/android/os/IBinder.DeathRecipient.html` instances allocated for the given token.

| Parameters |
|---|---|
| `sessionToken: https://developer.android.com/reference/kotlin/androidx/browser/auth/AuthTabSessionToken` | The session token for which the `https://developer.android.com/reference/android/os/IBinder.DeathRecipient.html` call has been received. |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | True if the provided session was cleaned up as a result of this call, false if the session doesn't exist or has already been cleaned up. |

### cleanUpSession

Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/browser#1.2.0)

```
protected fun cleanUpSession(sessionToken: CustomTabsSessionToken): Boolean
```

Called when the client side `https://developer.android.com/reference/android/os/IBinder.html` for this `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsSessionToken` is dead. Can also be used to clean up `https://developer.android.com/reference/android/os/IBinder.DeathRecipient.html` instances allocated for the given token.

| Parameters |
|---|---|
| `sessionToken: https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsSessionToken` | The session token for which the `https://developer.android.com/reference/android/os/IBinder.DeathRecipient.html` call has been received. |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | Whether the clean up was successful. Multiple calls with two tokens holdings the same binder will return false. |

### extraCommand

Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/browser#1.2.0)

```
protected abstract fun extraCommand(commandName: String, args: Bundle?): Bundle?
```

Unsupported commands that may be provided by the implementation.

**Note:** Clients should **never** rely on this method to have a defined behavior, as it is entirely implementation-defined and not supported.

This call can be used by implementations to add extra commands, for testing or experimental purposes. A return value of `null` will be used to signify that the client does not know how to handle the request. As optional best practices, `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#KEY_SUCCESS()` could be use to identify that command was \*successfully\* handled. For example, when returning a message with result:

```kotlin
    Bundle result = new Bundle();
    result.putString("message", message);
    if (success)
        result.putBoolean(KEY_SUCCESS, true);
    return result;
```
The caller side:

```kotlin
    Bundle result = service.extraCommand(commandName, args);
    if (result.getBoolean(service.KEY_SUCCESS)) {
        // Command was successfully handled
    }
```

| Parameters |
|---|---|
| `commandName: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | Name of the extra command to execute. |
| `args: https://developer.android.com/reference/android/os/Bundle.html?` | Arguments for the command |

| Returns |
|---|---|
| `https://developer.android.com/reference/android/os/Bundle.html?` | The result `https://developer.android.com/reference/android/os/Bundle.html`, or `null`. |

### isEngagementSignalsApiAvailable

Added in [1.6.0](https://developer.android.com/jetpack/androidx/releases/browser#1.6.0)

```
protected fun isEngagementSignalsApiAvailable(
    sessionToken: CustomTabsSessionToken,
    extras: Bundle
): Boolean
```

Returns whether the Engagement Signals API is available. The availability of the Engagement Signals API may change at runtime. If an `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/EngagementSignalsCallback` has been set, an `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/EngagementSignalsCallback#onSessionEnded(boolean,android.os.Bundle)` signal will be sent if the API becomes unavailable later.

| Parameters |
|---|---|
| `sessionToken: https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsSessionToken` | The unique identifier for the session. |
| `extras: https://developer.android.com/reference/android/os/Bundle.html` | Reserved for future use. |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | Whether the Engagement Signals API is available. A false value means `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#setEngagementSignalsCallback(androidx.browser.customtabs.CustomTabsSessionToken,androidx.browser.customtabs.EngagementSignalsCallback,android.os.Bundle)` will return false and not set the callback. |

### mayLaunchUrl

Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/browser#1.2.0)

```
protected abstract fun mayLaunchUrl(
    sessionToken: CustomTabsSessionToken,
    url: Uri?,
    extras: Bundle?,
    otherLikelyBundles: (Mutable)List<Bundle!>?
): Boolean
```

Tells the browser of a likely future navigation to a URL.

The method `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#warmup(long)` has to be called beforehand. The most likely URL has to be specified explicitly. Optionally, a list of other likely URLs can be provided. They are treated as less likely than the first one, and have to be sorted in decreasing priority order. These additional URLs may be ignored. All previous calls to this method will be deprioritized.

| Parameters |
|---|---|
| `sessionToken: https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsSessionToken` | The unique identifier for the session. Can not be null. |
| `url: https://developer.android.com/reference/android/net/Uri.html?` | Most likely URL. |
| `extras: https://developer.android.com/reference/android/os/Bundle.html?` | Reserved for future use. |
| `otherLikelyBundles: (https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/android/os/Bundle.html!>?` | Other likely destinations, sorted in decreasing likelihood order. Each Bundle has to provide a url. |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | Whether the call was successful. |

### newSession

Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/browser#1.2.0)

```
protected abstract fun newSession(sessionToken: CustomTabsSessionToken): Boolean
```

Creates a new session through an ICustomTabsService with the optional callback. This session can be used to associate any related communication through the service with an intent and then later with a Custom Tab. The client can then send later service calls or intents to through same session-intent-Custom Tab association.

| Parameters |
|---|---|
| `sessionToken: https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsSessionToken` | Session token to be used as a unique identifier. This also has access to the `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsCallback` passed from the client side through `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsSessionToken#getCallback()`. |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | Whether a new session was successfully created. |

### postMessage

Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/browser#1.2.0)

```
@CustomTabsService.Result
protected abstract fun postMessage(
    sessionToken: CustomTabsSessionToken,
    message: String,
    extras: Bundle?
): Int
```

Sends a postMessage request using the origin communicated via `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#requestPostMessageChannel(androidx.browser.customtabs.CustomTabsSessionToken,android.net.Uri)`. Fails when called before `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/PostMessageServiceConnection#notifyMessageChannelReady(android.os.Bundle)` is received on the client side.

| Parameters |
|---|---|
| `sessionToken: https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsSessionToken` | The unique identifier for the session. Can not be null. |
| `message: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | The message that is being sent. |
| `extras: https://developer.android.com/reference/android/os/Bundle.html?` | Reserved for future use. |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | An integer constant about the postMessage request result. Will return `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#RESULT_SUCCESS()` if successful. |

### prefetch

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/browser#1.9.0)

```
@ExperimentalPrefetch
protected fun prefetch(
    sessionToken: CustomTabsSessionToken,
    url: Uri,
    options: PrefetchOptions
): Unit
```

Request the browser to start navigational prefetch to the page that will be used for future navigations. `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#warmup(long)` is required to be called before using this method. TODO(crbug.com/40288091): Currently, there is no caller of this API and can be removed.

| Parameters |
|---|---|
| `sessionToken: https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsSessionToken` | The unique identifier for the session. |
| `url: https://developer.android.com/reference/android/net/Uri.html` | The url to be prefetched for future navigations. |
| `options: https://developer.android.com/reference/kotlin/androidx/browser/customtabs/PrefetchOptions` | The option used for prefetch request. Please see `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/PrefetchOptions`. |

### prefetch

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/browser#1.9.0)

```
@ExperimentalPrefetch
protected fun prefetch(
    sessionToken: CustomTabsSessionToken,
    urls: (Mutable)List<Uri!>,
    options: PrefetchOptions
): Unit
```

Request the browser to start navigational prefetch to the page that will be used for future navigations. `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#warmup(long)` is required to be called before using this method.

| Parameters |
|---|---|
| `sessionToken: https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsSessionToken` | The unique identifier for the session. |
| `urls: (https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/android/net/Uri.html!>` | The urls to be prefetched for future navigations. |
| `options: https://developer.android.com/reference/kotlin/androidx/browser/customtabs/PrefetchOptions` | The option used for prefetch request. Please see `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/PrefetchOptions`. |

### receiveFile

Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/browser#1.2.0)

```
protected abstract fun receiveFile(
    sessionToken: CustomTabsSessionToken,
    uri: Uri,
    purpose: Int,
    extras: Bundle?
): Boolean
```

Receive a file from client by given Uri, e.g. in order to display a large bitmap in a Custom Tab. Prior to calling this method, the client grants a read permission to the target Custom Tabs provider via `https://developer.android.com/reference/android/content/Context.html#grantUriPermission(java.lang.String, android.net.Uri, int)`. The file is read and processed (where applicable) synchronously.

| Parameters |
|---|---|
| `sessionToken: https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsSessionToken` | The unique identifier for the session. |
| `uri: https://developer.android.com/reference/android/net/Uri.html` | `https://developer.android.com/reference/android/net/Uri.html` of the file. |
| `purpose: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | Purpose of transferring this file, one of the constants enumerated in `CustomTabsService#FilePurpose`. |
| `extras: https://developer.android.com/reference/android/os/Bundle.html?` | Reserved for future use. |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `true` if the file was received successfully. |

### registerAuthTabSession

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/browser#1.9.0)

```
protected fun registerAuthTabSession(sessionToken: AuthTabSessionToken): Boolean
```

Creates a new Auth Tab session through an ICustomTabsService with the optional callback. This session can be used to associate any related communication through the service with an intent and then later with an Auth Tab. The client can then send later service calls or intents through the same session-intent-Auth Tab association.

| Parameters |
|---|---|
| `sessionToken: https://developer.android.com/reference/kotlin/androidx/browser/auth/AuthTabSessionToken` | Session token to be used as a unique identifier. This also has access to the AuthTabCallback passed from the client side through `https://developer.android.com/reference/kotlin/androidx/browser/auth/AuthTabSessionToken#getCallback()`. |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | Whether a new session was successfully created. |

### requestPostMessageChannel

Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/browser#1.2.0)

```
protected abstract fun requestPostMessageChannel(
    sessionToken: CustomTabsSessionToken,
    postMessageOrigin: Uri
): Boolean
```

Sends a request to create a two way postMessage channel between the client and the browser linked with the given `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsSession`.

| Parameters |
|---|---|
| `sessionToken: https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsSessionToken` | The unique identifier for the session. Can not be null. |
| `postMessageOrigin: https://developer.android.com/reference/android/net/Uri.html` | A origin that the client is requesting to be identified as during the postMessage communication. |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | Whether the implementation accepted the request. Note that returning true here doesn't mean an origin has already been assigned as the validation is asynchronous. |

### requestPostMessageChannel

Added in [1.6.0](https://developer.android.com/jetpack/androidx/releases/browser#1.6.0)

```
protected fun requestPostMessageChannel(
    sessionToken: CustomTabsSessionToken,
    postMessageOrigin: Uri,
    postMessageTargetOrigin: Uri?,
    extras: Bundle
): Boolean
```

Same as above method with specifying the target origin to establish communication with.

| Parameters |
|---|---|
| `sessionToken: https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsSessionToken` | The unique identifier for the session. Can not be null. |
| `postMessageOrigin: https://developer.android.com/reference/android/net/Uri.html` | A origin that the client is requesting to be identified as during the postMessage communication. |
| `postMessageTargetOrigin: https://developer.android.com/reference/android/net/Uri.html?` | The target Origin to establish PostMessageChannel with and send messages to. |
| `extras: https://developer.android.com/reference/android/os/Bundle.html` | Reserved for future use. |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | Whether the implementation accepted the request. Note that returning true here doesn't mean an origin has already been assigned as the validation is asynchronous. |

### setEngagementSignalsCallback

Added in [1.6.0](https://developer.android.com/jetpack/androidx/releases/browser#1.6.0)

```
protected fun setEngagementSignalsCallback(
    sessionToken: CustomTabsSessionToken,
    callback: EngagementSignalsCallback,
    extras: Bundle
): Boolean
```

Sets an `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/EngagementSignalsCallback` to execute callbacks for events related to the user's engagement with the webpage within the tab.

| Parameters |
|---|---|
| `sessionToken: https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsSessionToken` | The unique identifier for the session. |
| `callback: https://developer.android.com/reference/kotlin/androidx/browser/customtabs/EngagementSignalsCallback` | The `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/EngagementSignalsCallback` to execute the callbacks. |
| `extras: https://developer.android.com/reference/android/os/Bundle.html` | Reserved for future use. |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | Whether the callback connection is allowed. If false, no callbacks will be called for this session. |

### updateVisuals

Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/browser#1.2.0)

```
protected abstract fun updateVisuals(sessionToken: CustomTabsSessionToken, bundle: Bundle?): Boolean
```

Updates the visuals of custom tabs for the given session. Will only succeed if the given session matches the currently active one.

| Parameters |
|---|---|
| `sessionToken: https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsSessionToken` | The currently active session that the custom tab belongs to. |
| `bundle: https://developer.android.com/reference/android/os/Bundle.html?` | The action button configuration bundle. This bundle should be constructed with the same structure in `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsIntent.Builder`. |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | Whether the operation was successful. |

### validateRelationship

Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/browser#1.2.0)

```
protected abstract fun validateRelationship(
    sessionToken: CustomTabsSessionToken,
    @CustomTabsService.Relation relation: Int,
    origin: Uri,
    extras: Bundle?
): Boolean
```

Request to validate a relationship between the application and an origin. If this method returns true, the validation result will be provided through `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsCallback#onRelationshipValidationResult(int,android.net.Uri,boolean,android.os.Bundle)`. Otherwise the request didn't succeed. The client must call `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsClient#warmup(long)` before this.

| Parameters |
|---|---|
| `sessionToken: https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsSessionToken` | The unique identifier for the session. Can not be null. |
| `@https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService.Relation relation: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | Relation to check, must be one of the `CustomTabsService#RELATION_* ` constants. |
| `origin: https://developer.android.com/reference/android/net/Uri.html` | Origin for the relation query. |
| `extras: https://developer.android.com/reference/android/os/Bundle.html?` | Reserved for future use. |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | true if the request has been submitted successfully. |

### warmup

Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/browser#1.2.0)

```
protected abstract fun warmup(flags: Long): Boolean
```

Warms up the browser process asynchronously.

| Parameters |
|---|---|
| `flags: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | Reserved for future use. |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | Whether warmup was/had been completed successfully. Multiple successful calls will return true. |