TileService


public abstract class TileService extends Service


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

static final String
ACTION_BIND_TILE_PROVIDER = "androidx.wear.tiles.action.BIND_TILE_PROVIDER"

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

static final String
EXTRA_CLICKABLE_ID = "androidx.wear.tiles.extra.CLICKABLE_ID"

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

static final 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 methods

static @NonNull ListenableFuture<List<ActiveTileIdentifier>>

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

static @NonNull 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.

@Nullable IBinder

Protected methods

@NonNull ListenableFuture<ResourceBuilders.Resources>

This method is deprecated.

Use onTileResourcesRequest instead.

void

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

void

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

void

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

void

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

abstract @NonNull ListenableFuture<TileBuilders.Tile>

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

@NonNull ListenableFuture<ResourceBuilders.Resources>

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

Inherited Constants

From android.content.ComponentCallbacks2
static final int
static final int
static final int
static final int
static final int
static final int
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 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 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
POWER_SERVICE = "power"
static final String
PRINT_SERVICE = "print"
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
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
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

This method is deprecated.

void
void
revokeUriPermission(Uri uri, int modeFlags)
void
void
void
sendOrderedBroadcast(Intent intent, String receiverPermission)
void
sendOrderedBroadcastAsUser(
    Intent intent,
    UserHandle user,
    String receiverPermission,
    BroadcastReceiver resultReceiver,
    Handler scheduler,
    int initialCode,
    String initialData,
    Bundle initialExtras
)
void

This method is deprecated.

void

This method is deprecated.

void
sendStickyOrderedBroadcast(
    Intent intent,
    BroadcastReceiver resultReceiver,
    Handler scheduler,
    int initialCode,
    String initialData,
    Bundle initialExtras
)

This method is deprecated.

void
sendStickyOrderedBroadcastAsUser(
    Intent intent,
    UserHandle user,
    BroadcastReceiver resultReceiver,
    Handler scheduler,
    int initialCode,
    String initialData,
    Bundle initialExtras
)

This method is deprecated.

void
setTheme(int resid)
void

This method is deprecated.

void
startActivities(Intent[] intents)
void
ComponentName
boolean
startInstrumentation(
    ComponentName className,
    String profileFile,
    Bundle arguments
)
void
startIntentSender(
    IntentSender intent,
    Intent fillInIntent,
    int flagsMask,
    int flagsValues,
    int extraFlags
)
ComponentName
boolean
void
void
void
void
void
updateServiceGroup(ServiceConnection conn, int group, int importance)
From android.app.Service
void
void
dump(FileDescriptor fd, PrintWriter writer, String[] args)
final Application
final int
void
void
void
void
void
onRebind(Intent intent)
void
onStart(Intent intent, int startId)

This method is deprecated.

int
onStartCommand(Intent intent, int flags, int startId)
void
onTaskRemoved(Intent rootIntent)
void
onTimeout(int startId)
void
onTrimMemory(int level)
boolean
onUnbind(Intent intent)
final void
startForeground(int id, Notification notification)
final void
stopForeground(boolean removeNotification)

This method is deprecated.

final void
final boolean
stopSelfResult(int startId)

Constants

ACTION_BIND_TILE_PROVIDER

Added in 1.0.0
public static final String ACTION_BIND_TILE_PROVIDER = "androidx.wear.tiles.action.BIND_TILE_PROVIDER"

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
public static final String EXTRA_CLICKABLE_ID = "androidx.wear.tiles.extra.CLICKABLE_ID"

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

METADATA_PREVIEW_KEY

Added in 1.0.0
public static final 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

TileService

Added in 1.0.0
public TileService()

Public methods

getActiveTilesAsync

Added in 1.4.0
public static @NonNull ListenableFuture<List<ActiveTileIdentifier>> getActiveTilesAsync(@NonNull Context context, @NonNull Executor executor)

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
@NonNull Context context

The application context.

@NonNull 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
@NonNull ListenableFuture<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
public static @NonNull TileUpdateRequester getUpdater(@NonNull 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.

Parameters
@NonNull Context context

The application context.

onBind

Added in 1.0.0
public @Nullable IBinder onBind(@NonNull Intent intent)

Protected methods

onResourcesRequest

Added in 1.0.0
Deprecated in 1.2.0
@MainThread
protected @NonNull ListenableFuture<ResourceBuilders.ResourcesonResourcesRequest(
    @NonNull RequestBuilders.ResourcesRequest requestParams
)

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
@NonNull RequestBuilders.ResourcesRequest requestParams

Parameters about the request. See ResourcesRequest for more info.

onTileAddEvent

Added in 1.0.0
@MainThread
protected void onTileAddEvent(@NonNull EventBuilders.TileAddEvent requestParams)

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
@NonNull EventBuilders.TileAddEvent requestParams

Parameters about the request. See TileAddEvent for more info.

onTileEnterEvent

Added in 1.0.0
@MainThread
protected void onTileEnterEvent(@NonNull EventBuilders.TileEnterEvent requestParams)

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
@NonNull EventBuilders.TileEnterEvent requestParams

Parameters about the request. See TileEnterEvent for more info.

onTileLeaveEvent

Added in 1.0.0
@MainThread
protected void onTileLeaveEvent(@NonNull EventBuilders.TileLeaveEvent requestParams)

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
@NonNull EventBuilders.TileLeaveEvent requestParams

Parameters about the request. See TileLeaveEvent for more info.

onTileRemoveEvent

Added in 1.0.0
@MainThread
protected void onTileRemoveEvent(@NonNull EventBuilders.TileRemoveEvent requestParams)

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
@NonNull EventBuilders.TileRemoveEvent requestParams

Parameters about the request. See TileRemoveEvent for more info.

onTileRequest

Added in 1.0.0
@MainThread
protected abstract @NonNull ListenableFuture<TileBuilders.TileonTileRequest(@NonNull RequestBuilders.TileRequest requestParams)

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
@NonNull RequestBuilders.TileRequest requestParams

Parameters about the request. See TileRequest for more info.

onTileResourcesRequest

Added in 1.2.0
@MainThread
protected @NonNull ListenableFuture<ResourceBuilders.ResourcesonTileResourcesRequest(
    @NonNull RequestBuilders.ResourcesRequest requestParams
)

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
@NonNull RequestBuilders.ResourcesRequest requestParams

Parameters about the request. See ResourcesRequest for more info.