belongs to Maven artifact com.android.support:customtabs:28.0.0-alpha1
CustomTabsService
  public
  
  
  abstract
  class
  CustomTabsService
  
  
  
  
  
  
  
  
  
  
    extends Service
  
  
  
  
  
  
| java.lang.Object | ||||
| ↳ | android.content.Context | |||
| ↳ | android.content.ContextWrapper | |||
| ↳ | android.app.Service | |||
| ↳ | android.support.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 classes | |
|---|---|
| 
        
        
        
        
        @interface | CustomTabsService.Relation
 | 
| 
        
        
        
        
        @interface | CustomTabsService.Result
 | 
| Constants | |
|---|---|
| String | ACTION_CUSTOM_TABS_CONNECTIONThe Intent action that a CustomTabsService must respond to. | 
| String | KEY_URLFor  | 
| int | RELATION_HANDLE_ALL_URLSUsed for  | 
| int | RELATION_USE_AS_ORIGINUsed for  | 
| int | RESULT_FAILURE_DISALLOWEDIndicates that the postMessage request was not allowed due to a bad argument or requesting at a disallowed time like when in background. | 
| int | RESULT_FAILURE_MESSAGING_ERRORIndicates that the postMessage request has failed due to an internal error on the browser message channel. | 
| int | RESULT_FAILURE_REMOTE_ERRORIndicates that the postMessage request has failed due to a  | 
| int | RESULT_SUCCESSIndicates that the postMessage request was accepted. | 
| Inherited constants | 
|---|
|  From
  class 
    android.app.Service
   | 
|  From
  class 
    android.content.Context
   | 
|  From
  interface 
    android.content.ComponentCallbacks2
   | 
| Public constructors | |
|---|---|
| 
      CustomTabsService()
       | |
| Public methods | |
|---|---|
| 
        
        
        
        
        
        IBinder | 
      onBind(Intent intent)
       | 
| Protected methods | |
|---|---|
| 
        
        
        
        
        
        boolean | 
      cleanUpSession(CustomTabsSessionToken sessionToken)
      Called when the client side  | 
| 
        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
  | 
| 
        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  | 
| 
        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 
  
    android.app.Service
  
 | |
|  From
class 
  
    android.content.ContextWrapper
  
 | |
|  From
class 
  
    android.content.Context
  
 | |
|  From
class 
  
    java.lang.Object
  
 | |
|  From
interface 
  
    android.content.ComponentCallbacks2
  
 | |
|  From
interface 
  
    android.content.ComponentCallbacks
  
 | |
Constants
ACTION_CUSTOM_TABS_CONNECTION
String ACTION_CUSTOM_TABS_CONNECTION
The Intent action that a CustomTabsService must respond to.
Constant Value: "android.support.customtabs.action.CustomTabsService"
KEY_URL
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.
Constant Value: "android.support.customtabs.otherurls.URL"
RELATION_HANDLE_ALL_URLS
int RELATION_HANDLE_ALL_URLS
Used for validateRelationship(int, Uri, Bundle). Requests the
 ability to handle all URLs from a given origin.
Constant Value: 2 (0x00000002)
RELATION_USE_AS_ORIGIN
int RELATION_USE_AS_ORIGIN
Used for validateRelationship(int, Uri, 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.
Constant Value: 1 (0x00000001)
RESULT_FAILURE_DISALLOWED
int RESULT_FAILURE_DISALLOWED
Indicates that the postMessage request was not allowed due to a bad argument or requesting at a disallowed time like when in background.
Constant Value: -1 (0xffffffff)
RESULT_FAILURE_MESSAGING_ERROR
int RESULT_FAILURE_MESSAGING_ERROR
Indicates that the postMessage request has failed due to an internal error on the browser message channel.
Constant Value: -3 (0xfffffffd)
RESULT_FAILURE_REMOTE_ERROR
int RESULT_FAILURE_REMOTE_ERROR
Indicates that the postMessage request has failed due to a RemoteException .
Constant Value: -2 (0xfffffffe)
RESULT_SUCCESS
int RESULT_SUCCESS
Indicates that the postMessage request was accepted.
Constant Value: 0 (0x00000000)
Public constructors
Public methods
onBind
IBinder onBind (Intent intent)
| Parameters | |
|---|---|
| intent | Intent | 
| Returns | |
|---|---|
| IBinder | |
Protected methods
cleanUpSession
boolean cleanUpSession (CustomTabsSessionToken sessionToken)
Called when the client side IBinder for this CustomTabsSessionToken is dead.
 Can also be used to clean up IBinder.DeathRecipient instances allocated for the given token.
| Parameters | |
|---|---|
| sessionToken | CustomTabsSessionToken: The session token for which theIBinder.DeathRecipientcall has been
                     received. | 
| Returns | |
|---|---|
| boolean | Whether the clean up was successful. Multiple calls with two tokens holdings the same binder will return false. | 
extraCommand
Bundle extraCommand (String commandName, Bundle args)
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.
| Parameters | |
|---|---|
| commandName | String: Name of the extra command to execute. | 
| args | Bundle: Arguments for the command | 
| Returns | |
|---|---|
| Bundle | The result Bundle, or null. | 
mayLaunchUrl
boolean mayLaunchUrl (CustomTabsSessionToken sessionToken, Uri url, Bundle extras, List<Bundle> otherLikelyBundles)
Tells the browser of a likely future navigation to a URL.
 The method 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 | CustomTabsSessionToken: The unique identifier for the session. Can not be null. | 
| url | Uri: Most likely URL. | 
| extras | Bundle: Reserved for future use. | 
| otherLikelyBundles | List: Other likely destinations, sorted in decreasing
                           likelihood order. Each Bundle has to provide a url. | 
| Returns | |
|---|---|
| boolean | Whether the call was successful. | 
newSession
boolean newSession (CustomTabsSessionToken sessionToken)
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 | CustomTabsSessionToken: Session token to be used as a unique identifier. This also has access
                     to theCustomTabsCallbackpassed from the client side throughgetCallback(). | 
| Returns | |
|---|---|
| boolean | Whether a new session was successfully created. | 
postMessage
int postMessage (CustomTabsSessionToken sessionToken, String message, Bundle extras)
Sends a postMessage request using the origin communicated via
 requestPostMessageChannel(CustomTabsSessionToken, Uri). Fails when called before
 notifyMessageChannelReady(Bundle) is received on the
 client side.
| Parameters | |
|---|---|
| sessionToken | CustomTabsSessionToken: The unique identifier for the session. Can not be null. | 
| message | String: The message that is being sent. | 
| extras | Bundle: Reserved for future use. | 
| Returns | |
|---|---|
| int | An integer constant about the postMessage request result. Will return RESULT_SUCCESSif successful. | 
requestPostMessageChannel
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.
| Parameters | |
|---|---|
| sessionToken | CustomTabsSessionToken: The unique identifier for the session. Can not be null. | 
| postMessageOrigin | Uri: A origin that the client is requesting to be identified as
                          during the postMessage communication. | 
| Returns | |
|---|---|
| boolean | 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. | 
updateVisuals
boolean updateVisuals (CustomTabsSessionToken sessionToken, Bundle bundle)
Updates the visuals of custom tabs for the given session. Will only succeed if the given session matches the currently active one.
| Parameters | |
|---|---|
| sessionToken | CustomTabsSessionToken: The currently active session that the custom tab belongs to. | 
| bundle | Bundle: The action button configuration bundle. This bundle should be constructed
                     with the same structure inCustomTabsIntent.Builder. | 
| Returns | |
|---|---|
| boolean | Whether the operation was successful. | 
validateRelationship
boolean validateRelationship (CustomTabsSessionToken sessionToken, int relation, Uri origin, Bundle extras)
Request to validate a relationship between the application and an origin.
 If this method returns true, the validation result will be provided through
 onRelationshipValidationResult(int, Uri, boolean, Bundle).
 Otherwise the request didn't succeed. The client must call
 warmup(long) before this.
| Parameters | |
|---|---|
| sessionToken | CustomTabsSessionToken: The unique identifier for the session. Can not be null. | 
| relation | int: Relation to check, must be one of theCustomTabsService#RELATION_* constants. | 
| origin | Uri: Origin for the relation query. | 
| extras | Bundle: Reserved for future use. | 
| Returns | |
|---|---|
| boolean | true if the request has been submitted successfully. | 
warmup
boolean warmup (long flags)
Warms up the browser process asynchronously.
| Parameters | |
|---|---|
| flags | long: Reserved for future use. | 
| Returns | |
|---|---|
| boolean | Whether warmup was/had been completed successfully. Multiple successful calls will return true. | 
- Annotations
- Classes- CustomTabsCallback
- CustomTabsClient
- CustomTabsIntent
- CustomTabsIntent.Builder
- CustomTabsService
- CustomTabsServiceConnection
- CustomTabsSession
- CustomTabsSessionToken
- PostMessageService
- PostMessageServiceConnection
- R
- R.anim
- R.attr
- R.bool
- R.color
- R.dimen
- R.drawable
- R.id
- R.integer
- R.layout
- R.string
- R.style
- R.styleable
- TrustedWebUtils
 
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-02-10 UTC.
