CustomTabsService


public abstract class CustomTabsService extends Service


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

@Retention(value = RetentionPolicy.SOURCE)
@IntDef(value = )
public annotation CustomTabsService.Relation
@Retention(value = RetentionPolicy.SOURCE)
@IntDef(value = )
public annotation CustomTabsService.Result

Constants

static final String
ACTION_CUSTOM_TABS_CONNECTION = "android.support.customtabs.action.CustomTabsService"

The Intent action that a CustomTabsService must respond to.

static final String
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 setColorScheme and setColorSchemeParams.

static final String
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 (setNavigationBarColor).

static final String
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 setNetwork.

static final String
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.

static final String
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/.

static final int

A constant to be used with receiveFile indicating that the file is a splash image to be shown on top of a Trusted Web Activity while the web contents are loading.

static final String
KEY_SUCCESS = "androidx.browser.customtabs.SUCCESS"

The key to use to store a boolean in the returns bundle of extraCommand method, to indicate the command is executed successfully.

static final String
KEY_URL = "android.support.customtabs.otherurls.URL"

For mayLaunchUrl calls that wants to specify more than one url, this key can be used with putParcelable to insert a new url to each bundle inside list of bundles.

static final int

Used for validateRelationship.

static final int

Used for validateRelationship.

static final int

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

static final int

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

static final int

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

static final int

Indicates that the postMessage request was accepted.

static final String
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 TrustedWebUtils for more details).

Public constructors

Public methods

@NonNull IBinder

Protected methods

boolean

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

boolean

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

abstract @Nullable Bundle
extraCommand(@NonNull String commandName, @Nullable Bundle args)

Unsupported commands that may be provided by the implementation.

boolean

Returns whether the Engagement Signals API is available.

boolean

Returns whether ephemeral browsing is supported.

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

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

boolean

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

abstract boolean

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

abstract int
@CustomTabsService.Result
postMessage(
    @NonNull CustomTabsSessionToken sessionToken,
    @NonNull String message,
    @Nullable Bundle extras
)

Sends a postMessage request using the origin communicated via requestPostMessageChannel.

void
@ExperimentalPrefetch
prefetch(
    @NonNull CustomTabsSessionToken sessionToken,
    @NonNull Uri url,
    @NonNull PrefetchOptions options
)

Request the browser to start navigational prefetch to the page that will be used for future navigations.

void
@ExperimentalPrefetch
prefetch(
    @NonNull CustomTabsSessionToken sessionToken,
    @NonNull List<Uri> urls,
    @NonNull PrefetchOptions options
)

Request the browser to start navigational prefetch to the page that will be used for future navigations.

abstract boolean
receiveFile(
    @NonNull CustomTabsSessionToken sessionToken,
    @NonNull Uri uri,
    int purpose,
    @Nullable Bundle extras
)

Receive a file from client by given Uri, e.g. in order to display a large bitmap in a Custom Tab.

abstract boolean
requestPostMessageChannel(
    @NonNull CustomTabsSessionToken sessionToken,
    @NonNull Uri postMessageOrigin
)

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

boolean
requestPostMessageChannel(
    @NonNull CustomTabsSessionToken sessionToken,
    @NonNull Uri postMessageOrigin,
    @Nullable Uri postMessageTargetOrigin,
    @NonNull Bundle extras
)

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

boolean

Sets an EngagementSignalsCallback to execute callbacks for events related to the user's engagement with the webpage within the tab.

abstract boolean
updateVisuals(
    @NonNull CustomTabsSessionToken sessionToken,
    @Nullable Bundle bundle
)

Updates the visuals of custom tabs for the given session.

abstract boolean
validateRelationship(
    @NonNull CustomTabsSessionToken sessionToken,
    @CustomTabsService.Relation int relation,
    @NonNull Uri origin,
    @Nullable 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 Constants

From android.content.ComponentCallbacks2
static final int
static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int
From android.content.Context
static final String
ACCESSIBILITY_SERVICE = "accessibility"
static final String
ACCOUNT_SERVICE = "account"
static final String
ACTIVITY_SERVICE = "activity"
static final String
ALARM_SERVICE = "alarm"
static final String
APPWIDGET_SERVICE = "appwidget"
static final String
APP_OPS_SERVICE = "appops"
static final String
APP_SEARCH_SERVICE = "app_search"
static final String
AUDIO_SERVICE = "audio"
static final String
BATTERY_SERVICE = "batterymanager"
static final int
static final int
static final int
static final int
static final int
static final int
static final int
BIND_EXTERNAL_SERVICE = -2147483648
static final long
BIND_EXTERNAL_SERVICE_LONG = 4611686018427387904
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final String
BIOMETRIC_SERVICE = "biometric"
static final String
BLOB_STORE_SERVICE = "blob_store"
static final String
BLUETOOTH_SERVICE = "bluetooth"
static final String
BUGREPORT_SERVICE = "bugreport"
static final String
CAMERA_SERVICE = "camera"
static final String
CAPTIONING_SERVICE = "captioning"
static final String
CARRIER_CONFIG_SERVICE = "carrier_config"
static final String
CLIPBOARD_SERVICE = "clipboard"
static final String
COMPANION_DEVICE_SERVICE = "companiondevice"
static final String
CONNECTIVITY_DIAGNOSTICS_SERVICE = "connectivity_diagnostics"
static final String
CONNECTIVITY_SERVICE = "connectivity"
static final String
CONSUMER_IR_SERVICE = "consumer_ir"
static final String
CONTACT_KEYS_SERVICE = "contact_keys"
static final int
static final int
static final int
static final String
CREDENTIAL_SERVICE = "credential"
static final String
CROSS_PROFILE_APPS_SERVICE = "crossprofileapps"
static final int
static final int
static final String
DEVICE_LOCK_SERVICE = "device_lock"
static final String
DEVICE_POLICY_SERVICE = "device_policy"
static final String
DISPLAY_HASH_SERVICE = "display_hash"
static final String
DISPLAY_SERVICE = "display"
static final String
DOMAIN_VERIFICATION_SERVICE = "domain_verification"
static final String
DOWNLOAD_SERVICE = "download"
static final String
DROPBOX_SERVICE = "dropbox"
static final String
EUICC_SERVICE = "euicc"
static final String
FILE_INTEGRITY_SERVICE = "file_integrity"
static final String
FINGERPRINT_SERVICE = "fingerprint"
static final String
GAME_SERVICE = "game"
static final String
GRAMMATICAL_INFLECTION_SERVICE = "grammatical_inflection"
static final String
HARDWARE_PROPERTIES_SERVICE = "hardware_properties"
static final String
HEALTHCONNECT_SERVICE = "healthconnect"
static final String
INPUT_METHOD_SERVICE = "input_method"
static final String
INPUT_SERVICE = "input"
static final String
IPSEC_SERVICE = "ipsec"
static final String
JOB_SCHEDULER_SERVICE = "jobscheduler"
static final String
KEYGUARD_SERVICE = "keyguard"
static final String
LAUNCHER_APPS_SERVICE = "launcherapps"
static final String
LAYOUT_INFLATER_SERVICE = "layout_inflater"
static final String
LOCALE_SERVICE = "locale"
static final String
LOCATION_SERVICE = "location"
static final String
MEDIA_COMMUNICATION_SERVICE = "media_communication"
static final String
MEDIA_METRICS_SERVICE = "media_metrics"
static final String
MEDIA_PROJECTION_SERVICE = "media_projection"
static final String
MEDIA_ROUTER_SERVICE = "media_router"
static final String
MEDIA_SESSION_SERVICE = "media_session"
static final String
MIDI_SERVICE = "midi"
static final int
MODE_APPEND = 32768
static final int
static final int

This field is deprecated.

static final int
static final int
static final int

This field is deprecated.

static final int

This field is deprecated.

static final String
static final String
NFC_SERVICE = "nfc"
static final String
NOTIFICATION_SERVICE = "notification"
static final String
NSD_SERVICE = "servicediscovery"
static final String
OVERLAY_SERVICE = "overlay"
static final String
PEOPLE_SERVICE = "people"
static final String
PERFORMANCE_HINT_SERVICE = "performance_hint"
static final String
PERSISTENT_DATA_BLOCK_SERVICE = "persistent_data_block"
static final String
POWER_SERVICE = "power"
static final String
PRINT_SERVICE = "print"
static final String
PROFILING_SERVICE = "profiling"
static final int
static final int
static final int
static final String
RESTRICTIONS_SERVICE = "restrictions"
static final String
ROLE_SERVICE = "role"
static final String
SEARCH_SERVICE = "search"
static final String
SECURITY_STATE_SERVICE = "security_state"
static final String
SENSOR_SERVICE = "sensor"
static final String
SHORTCUT_SERVICE = "shortcut"
static final String
STATUS_BAR_SERVICE = "statusbar"
static final String
STORAGE_SERVICE = "storage"
static final String
STORAGE_STATS_SERVICE = "storagestats"
static final String
SYSTEM_HEALTH_SERVICE = "systemhealth"
static final String
TELECOM_SERVICE = "telecom"
static final String
TELEPHONY_IMS_SERVICE = "telephony_ims"
static final String
static final String
TELEPHONY_SUBSCRIPTION_SERVICE = "telephony_subscription_service"
static final String
TEXT_CLASSIFICATION_SERVICE = "textclassification"
static final String
static final String
TV_INPUT_SERVICE = "tv_input"
static final String
TV_INTERACTIVE_APP_SERVICE = "tv_interactive_app"
static final String
UI_MODE_SERVICE = "uimode"
static final String
USAGE_STATS_SERVICE = "usagestats"
static final String
USB_SERVICE = "usb"
static final String
USER_SERVICE = "user"
static final String
VIBRATOR_MANAGER_SERVICE = "vibrator_manager"
static final String
VIBRATOR_SERVICE = "vibrator"

This field is deprecated.

static final String
VIRTUAL_DEVICE_SERVICE = "virtualdevice"
static final String
VPN_MANAGEMENT_SERVICE = "vpn_management"
static final String
WALLPAPER_SERVICE = "wallpaper"
static final String
WIFI_AWARE_SERVICE = "wifiaware"
static final String
WIFI_P2P_SERVICE = "wifip2p"
static final String
static final String
WIFI_SERVICE = "wifi"
static final String
WINDOW_SERVICE = "window"
From android.app.Service
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int

This field is deprecated.

static final int

Inherited methods

From android.content.Context
final int
getColor(int id)
final ColorStateList
final Drawable
getDrawable(int id)
final String
getString(int resId)
final T
<T> getSystemService(Class<T> serviceClass)
final CharSequence
getText(int resId)
final TypedArray
void
void
sendBroadcastWithMultiplePermissions(
    Intent intent,
    String[] receiverPermissions
)
From android.content.ContextWrapper
boolean
bindIsolatedService(
    Intent service,
    int flags,
    String instanceName,
    Executor executor,
    ServiceConnection conn
)
boolean
bindService(Intent service, ServiceConnection conn, int flags)
boolean
bindServiceAsUser(
    Intent service,
    ServiceConnection conn,
    int flags,
    UserHandle user
)
int
int
checkCallingOrSelfUriPermission(Uri uri, int modeFlags)
int[]
checkCallingOrSelfUriPermissions(List<Uri> uris, int modeFlags)
int
int
checkCallingUriPermission(Uri uri, int modeFlags)
int[]
checkCallingUriPermissions(List<Uri> uris, int modeFlags)
int
checkContentUriPermissionFull(Uri uri, int pid, int uid, int modeFlags)
int
checkPermission(String permission, int pid, int uid)
int
int
checkUriPermission(Uri uri, int pid, int uid, int modeFlags)
int[]
checkUriPermissions(List<Uri> uris, int pid, int uid, int modeFlags)
void

This method is deprecated.

Context
Context
Context
Context
Context
createDeviceContext(int deviceId)
Context
Context
Context
createPackageContext(String packageName, int flags)
Context
createWindowContext(int type, Bundle options)
String[]
boolean
boolean
boolean
void
void
enforceCallingOrSelfUriPermission(
    Uri uri,
    int modeFlags,
    String message
)
void
enforceCallingPermission(String permission, String message)
void
enforceCallingUriPermission(Uri uri, int modeFlags, String message)
void
enforcePermission(String permission, int pid, int uid, String message)
void
enforceUriPermission(
    Uri uri,
    int pid,
    int uid,
    int modeFlags,
    String message
)
String[]
Context
ApplicationInfo
AssetManager
AttributionSource
String
Context
File
ClassLoader
File
ContentResolver
File
File
int
File
getDir(String name, int mode)
Display
File
File[]
File
File[]
File[]

This method is deprecated.

File
File
Executor
Looper
File
File
File[]
String
String
PackageManager
String
String
ContextParams
Resources
SharedPreferences
getSharedPreferences(String name, int mode)
Object
String
Resources.Theme
Drawable

This method is deprecated.

int

This method is deprecated.

int

This method is deprecated.

void
grantUriPermission(String toPackage, Uri uri, int modeFlags)
boolean
boolean
boolean
boolean
moveDatabaseFrom(Context sourceContext, String name)
boolean
moveSharedPreferencesFrom(Context sourceContext, String name)
FileInputStream
FileOutputStream
openFileOutput(String name, int mode)
SQLiteDatabase
openOrCreateDatabase(
    String name,
    int mode,
    SQLiteDatabase.CursorFactory factory
)
Drawable

This method is deprecated.

void
void
Intent
void

This method is deprecated.

void