TileService


abstract class TileService : Service

Known direct subclasses
GlanceTileService

TileService which can consume a Glance composition, convert it to a Wear Tile, and provide it to the system.


Base class for a service providing data for an app tile.

A provider service must implement onTileRequest and onTileResourcesRequest to respond to requests for updates from the system.

The manifest declaration of this service must include an intent filter for ACTION_BIND_TILE_PROVIDER.

The manifest entry should also include android:permission="com.google.android.wearable.permission.BIND_TILE_PROVIDER" to ensure that only the system can bind to it.

Summary

Constants

const String!
ACTION_BIND_TILE_PROVIDER = "androidx.wear.tiles.action.BIND_TILE_PROVIDER"

The intent action used to send update requests to the provider.

const String!
EXTRA_CLICKABLE_ID = "androidx.wear.tiles.extra.CLICKABLE_ID"

The ID for the Intent extra containing the ID of the Clickable.

const String!
METADATA_PREVIEW_KEY = "androidx.wear.tiles.PREVIEW"

The name of the metadata key that should contain a drawable to be presented as a Tile preview.

Public constructors

Public functions

java-static ListenableFuture<(Mutable)List<ActiveTileIdentifier!>!>
getActiveTilesAsync(context: Context, executor: Executor)

Returns the list of active tiles belonging to the passed context's package name.

java-static TileUpdateRequester
getUpdater(context: Context)

Gets an instance of TileUpdateRequester to allow a Tile Provider to notify the tile's renderer that it should request a new Timeline from this TileService.

IBinder?
onBind(intent: Intent)

Protected functions

ListenableFuture<ResourceBuilders.Resources!>

This function is deprecated.

Use onTileResourcesRequest instead.

Unit

Called when a tile provided by this Tile Provider is added to the carousel.

Unit

This function is deprecated.

use processRecentInteractionEvents.

Unit

This function is deprecated.

use processRecentInteractionEvents.

Unit

Called when a tile provided by this Tile Provider is removed from the carousel.

abstract ListenableFuture<TileBuilders.Tile!>

Called when the system is requesting a new timeline from this Tile Provider.

ListenableFuture<ResourceBuilders.Resources!>

Called when the system is requesting a resource bundle from this Tile Provider.

Unit

Called when the system sends a batch of Tile interaction events that happened since the last time this method was called.

Inherited Constants

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

This property is deprecated.

const Int
const Int
const Int

This property is deprecated.

const Int

This property is deprecated.

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

This property is deprecated.

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

Inherited functions

From android.content.Context
From android.content.ContextWrapper
Boolean
bindIsolatedService(
    service: Intent!,
    flags: Int,
    instanceName: String!,
    executor: Executor!,
    conn: ServiceConnection!
)
Boolean
bindService(service: Intent!, conn: ServiceConnection!, flags: Int)
Boolean
bindServiceAsUser(
    service: Intent!,
    conn: ServiceConnection!,
    flags: Int,
    user: UserHandle!
)
Int
Int
IntArray<Int>!
checkCallingOrSelfUriPermissions(
    uris: (Mutable)List<Uri!>!,
    modeFlags: Int
)
Int
Int
checkCallingUriPermission(uri: Uri!, modeFlags: Int)
IntArray<Int>!
checkCallingUriPermissions(uris: (Mutable)List<Uri!>!, modeFlags: Int)
Int
checkPermission(permission: String!, pid: Int, uid: Int)
Int
Int
checkUriPermission(uri: Uri!, pid: Int, uid: Int, modeFlags: Int)
IntArray<Int>!
checkUriPermissions(
    uris: (Mutable)List<Uri!>!,
    pid: Int,
    uid: Int,
    modeFlags: Int
)
Unit

This function is deprecated.

Context!
createAttributionContext(attributionTag: String!)
Context!
createConfigurationContext(overrideConfiguration: Configuration!)
Context!
createContext(contextParams: ContextParams!)
Context!
Context!
Context!
Context!
Context!
createPackageContext(packageName: String!, flags: Int)
Context!
createWindowContext(type: Int, options: Bundle!)
Array<String!>!
Boolean
Boolean
Boolean
Unit
enforceCallingOrSelfPermission(permission: String!, message: String!)
Unit
enforceCallingOrSelfUriPermission(
    uri: Uri!,
    modeFlags: Int,
    message: String!
)
Unit
enforceCallingPermission(permission: String!, message: String!)
Unit
enforceCallingUriPermission(uri: Uri!, modeFlags: Int, message: String!)
Unit
enforcePermission(permission: String!, pid: Int, uid: Int, message: String!)
Unit
enforceUriPermission(
    uri: Uri!,
    pid: Int,
    uid: Int,
    modeFlags: Int,
    message: String!
)
Array<String!>!
Context!
ApplicationInfo!
AssetManager!
AttributionSource!
String!
Context!
File!
ClassLoader!
File!
ContentResolver!
File!
File!
Int
File!
getDir(name: String!, mode: Int)
Display!
File!
Array<File!>!
File!
Array<File!>!
Array<File!>!

This function is deprecated.

File!
File!
Executor!
Looper!
File!
File!
Array<File!>!
String!
String!
PackageManager!
String!
String!
ContextParams!
Resources!
SharedPreferences!
getSharedPreferences(name: String!, mode: Int)
Any!
String!
getSystemServiceName(serviceClass: Class<Any!>!)
Resources.Theme!
Drawable!

This function is deprecated.

Int

This function is deprecated.

Int

This function is deprecated.

Unit
grantUriPermission(toPackage: String!, uri: Uri!, modeFlags: Int)
Boolean
Boolean
Boolean
Boolean
moveDatabaseFrom(sourceContext: Context!, name: String!)
Boolean
moveSharedPreferencesFrom(sourceContext: Context!, name: String!)
FileInputStream!
FileOutputStream!
openFileOutput(name: String!, mode: Int)
SQLiteDatabase!
openOrCreateDatabase(
    name: String!,
    mode: Int,
    factory: SQLiteDatabase.CursorFactory!
)
Drawable!

This function is deprecated.

Unit
Unit
Intent!
Unit

This function is deprecated.

Unit

This function is deprecated.

Unit
Unit
revokeUriPermission(uri: Uri!, modeFlags: Int)
Unit
Unit
Unit
sendOrderedBroadcast(intent: Intent!, receiverPermission: String!)
Unit
sendOrderedBroadcastAsUser(
    intent: Intent!,
    user: UserHandle!,
    receiverPermission: String!,
    resultReceiver: BroadcastReceiver!,
    scheduler: Handler!,
    initialCode: Int,
    initialData: String!,
    initialExtras: Bundle!
)
Unit

This function is deprecated.

Unit

This function is deprecated.

Unit
sendStickyOrderedBroadcast(
    intent: Intent!,
    resultReceiver: BroadcastReceiver!,
    scheduler: Handler!,
    initialCode: Int,
    initialData: String!,
    initialExtras: Bundle!
)

This function is deprecated.

Unit
sendStickyOrderedBroadcastAsUser(
    intent: Intent!,
    user: UserHandle!,
    resultReceiver: BroadcastReceiver!,
    scheduler: Handler!,
    initialCode: Int,
    initialData: String!,
    initialExtras: Bundle!
)

This function is deprecated.

Unit
setTheme(resid: Int)
Unit
setWallpaper(bitmap: Bitmap!)

This function is deprecated.

Unit
Unit
ComponentName!
Boolean
startInstrumentation(
    className: ComponentName!,
    profileFile: String!,
    arguments: Bundle!
)
Unit
startIntentSender(
    intent: IntentSender!,
    fillInIntent: Intent!,
    flagsMask: Int,
    flagsValues: Int,
    extraFlags: Int
)
ComponentName!
startService(service: Intent!)
Boolean
Unit
Unit
Unit
Unit
Unit
updateServiceGroup(conn: ServiceConnection!, group: Int, importance: Int)
From android.app.Service
Unit
Unit
dump(fd: FileDescriptor!, writer: PrintWriter!, args: Array<String!>!)
Application!
Int
Unit
Unit
Unit
Unit
Unit
onRebind(intent: Intent!)
Unit
onStart(intent: Intent!, startId: Int)

This function is deprecated.

Int
onStartCommand(intent: Intent!, flags: Int, startId: Int)
Unit
onTaskRemoved(rootIntent: Intent!)
Unit
onTimeout(startId: Int)
Unit
onTrimMemory(level: Int)
Boolean
onUnbind(intent: Intent!)
Unit
startForeground(id: Int, notification: Notification!)
Unit
stopForeground(removeNotification: Boolean)

This function is deprecated.

Unit
Boolean
stopSelfResult(startId: Int)

Constants

ACTION_BIND_TILE_PROVIDER

Added in 1.0.0
const val ACTION_BIND_TILE_PROVIDER = "androidx.wear.tiles.action.BIND_TILE_PROVIDER": String!

The intent action used to send update requests to the provider. Tile provider services must declare an intent filter for this action in the manifest.

EXTRA_CLICKABLE_ID

Added in 1.0.0
const val EXTRA_CLICKABLE_ID = "androidx.wear.tiles.extra.CLICKABLE_ID": String!

The ID for the Intent extra containing the ID of the Clickable.

METADATA_PREVIEW_KEY

Added in 1.0.0
const val METADATA_PREVIEW_KEY = "androidx.wear.tiles.PREVIEW": String!

The name of the metadata key that should contain a drawable to be presented as a Tile preview.

Public constructors

TileService

Added in 1.0.0
TileService()

Public functions

getActiveTilesAsync

Added in 1.4.0
java-static fun getActiveTilesAsync(context: Context, executor: Executor): ListenableFuture<(Mutable)List<ActiveTileIdentifier!>!>

Returns the list of active tiles belonging to the passed context's package name. A tile is considered to be active if it is present in the carousel.

The result reflects the state of carousel at the time the call was made, which might've changed by the time the result is received. onTileAddEvent and onTileRemoveEvent should be used instead for live updates.

Compatibility behavior:

On SDKs older than U, this method is a best-effort to match platform behavior, but may not always return all tiles present in the carousel. The possibly omitted tiles being the pre-installed tiles, all tiles if the user has cleared the app data, or the tiles a user hasn't visited in the last 60 days, while tiles removed by an app update may be shown as active for 60 days afterwards.

Parameters
context: Context

The application context.

executor: Executor

The executor on which methods should be invoked. To dispatch events through the main thread of your application, you can use getMainExecutor.

Returns
ListenableFuture<(Mutable)List<ActiveTileIdentifier!>!>

A list of ActiveTileIdentifier for the tiles belonging to the passed context present in the carousel, or a value based on platform-specific fallback behavior.

getUpdater

Added in 1.0.0
java-static fun getUpdater(context: Context): TileUpdateRequester

Gets an instance of TileUpdateRequester to allow a Tile Provider to notify the tile's renderer that it should request a new Timeline from this TileService.

Parameters
context: Context

The application context.

onBind

Added in 1.0.0
fun onBind(intent: Intent): IBinder?

Protected functions

onResourcesRequest

Added in 1.0.0
Deprecated in 1.2.0
@MainThread
protected fun onResourcesRequest(requestParams: RequestBuilders.ResourcesRequest): ListenableFuture<ResourceBuilders.Resources!>

Called when the system is requesting a resource bundle from this Tile Provider. The returned future must complete after at most 10 seconds from the moment this method is called (exact timeout length subject to change).

Note that this is called from your app's main thread, which is usually also the UI thread.

Parameters
requestParams: RequestBuilders.ResourcesRequest

Parameters about the request. See ResourcesRequest for more info.

onTileAddEvent

Added in 1.0.0
@MainThread
protected fun onTileAddEvent(requestParams: EventBuilders.TileAddEvent): Unit

Called when a tile provided by this Tile Provider is added to the carousel.

Note that this is called from your app's main thread, which is usually also the UI thread.

Parameters
requestParams: EventBuilders.TileAddEvent

Parameters about the request. See TileAddEvent for more info.

onTileEnterEvent

Added in 1.0.0
Deprecated in 1.5.0-alpha05
@MainThread
protected fun onTileEnterEvent(requestParams: EventBuilders.TileEnterEvent): Unit

Called when a tile provided by this Tile Provider becomes into view, on screen.

Note that this is called from your app's main thread, which is usually also the UI thread.

Parameters
requestParams: EventBuilders.TileEnterEvent

Parameters about the request. See TileEnterEvent for more info.

onTileLeaveEvent

Added in 1.0.0
Deprecated in 1.5.0-alpha05
@MainThread
protected fun onTileLeaveEvent(requestParams: EventBuilders.TileLeaveEvent): Unit

Called when a tile provided by this Tile Provider goes out of view, on screen.

Note that this is called from your app's main thread, which is usually also the UI thread.

Parameters
requestParams: EventBuilders.TileLeaveEvent

Parameters about the request. See TileLeaveEvent for more info.

onTileRemoveEvent

Added in 1.0.0
@MainThread
protected fun onTileRemoveEvent(requestParams: EventBuilders.TileRemoveEvent): Unit

Called when a tile provided by this Tile Provider is removed from the carousel.

Note that this is called from your app's main thread, which is usually also the UI thread.

Parameters
requestParams: EventBuilders.TileRemoveEvent

Parameters about the request. See TileRemoveEvent for more info.

onTileRequest

Added in 1.0.0
@MainThread
protected abstract fun onTileRequest(requestParams: RequestBuilders.TileRequest): ListenableFuture<TileBuilders.Tile!>

Called when the system is requesting a new timeline from this Tile Provider. The returned future must complete after at most 10 seconds from the moment this method is called (exact timeout length subject to change).

Note that this is called from your app's main thread, which is usually also the UI thread.

Parameters
requestParams: RequestBuilders.TileRequest

Parameters about the request. See TileRequest for more info.

onTileResourcesRequest

Added in 1.2.0
@MainThread
protected fun onTileResourcesRequest(requestParams: RequestBuilders.ResourcesRequest): ListenableFuture<ResourceBuilders.Resources!>

Called when the system is requesting a resource bundle from this Tile Provider. This can happen on the first time a Tile is being loaded or whenever the resource version requested by a Tile (in onTileRequest) changes.

The returned future must complete after at most 10 seconds from the moment this method is called (exact timeout length subject to change).

Note that this is called from your app's main thread, which is usually also the UI thread. If onTileResourcesRequest is not implemented, the TileService will fallback to onResourcesRequest.

Parameters
requestParams: RequestBuilders.ResourcesRequest

Parameters about the request. See ResourcesRequest for more info.

processRecentInteractionEvents

Added in 1.5.0-alpha05
@MainThread
protected fun processRecentInteractionEvents(
    events: (Mutable)List<EventBuilders.TileInteractionEvent!>
): Unit

Called when the system sends a batch of Tile interaction events that happened since the last time this method was called. The time between calls to this method may vary, do not depend on it for time-sensitive or critical tasks.

This method is called from your app's main thread, which is usually also the UI thread.

Parameters
events: (Mutable)List<EventBuilders.TileInteractionEvent!>

A list of TileInteractionEvent representing interactions that occurred.