Stay organized with collections Save and categorize content based on your preferences.
added in version 24.1.0
belongs to Maven artifact


public abstract class CustomTabsService
extends Service

   ↳ android.content.Context
     ↳ android.content.ContextWrapper

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.


Nested classes

@interface CustomTabsService.Relation


@interface CustomTabsService.Result




The Intent action that a CustomTabsService must respond to.

String KEY_URL

For mayLaunchUrl(CustomTabsSessionToken, Uri, Bundle, List) calls that wants to specify more than one url, this key can be used with putParcelable(String, android.os.Parcelable) to insert a new url to each bundle inside list of bundles.


Used for validateRelationship(int, Uri, Bundle).


Used for validateRelationship(int, Uri, Bundle).


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


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


Indicates that the postMessage request has failed due to a RemoteException .


Indicates that the postMessage request was accepted.

Inherited constants

From class
From class android.content.Context
From interface android.content.ComponentCallbacks2

Public constructors


Public methods

IBinder onBind(Intent intent)

Protected methods

boolean cleanUpSession(CustomTabsSessionToken sessionToken)

Called when the client side IBinder for this CustomTabsSessionToken is dead.

abstract Bundle extraCommand(String commandName, Bundle args)

Unsupported commands that may be provided by the implementation.

abstract boolean mayLaunchUrl(CustomTabsSessionToken sessionToken, Uri url, Bundle extras, List<Bundle> otherLikelyBundles)

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

abstract boolean newSession(CustomTabsSessionToken sessionToken)

Creates a new session through an ICustomTabsService with the optional callback.

abstract int postMessage(CustomTabsSessionToken sessionToken, String message, Bundle extras)

Sends a postMessage request using the origin communicated via requestPostMessageChannel(CustomTabsSessionToken, Uri).

abstract boolean requestPostMessageChannel(CustomTabsSessionToken sessionToken, Uri postMessageOrigin)

Sends a request to create a two way postMessage channel between the client and the browser linked with the given CustomTabsSession.

abstract boolean updateVisuals(CustomTabsSessionToken sessionToken, Bundle bundle)

Updates the visuals of custom tabs for the given session.

abstract boolean validateRelationship(CustomTabsSessionToken sessionToken, int relation, Uri origin, Bundle extras)

Request to validate a relationship between the application and an origin.

abstract boolean warmup(long flags)

Warms up the browser process asynchronously.

Inherited methods

From class
From class android.content.ContextWrapper