The Watch Face Format is required for watch faces to be installed on devices with Wear OS 5 or later pre-installed and for all new watch faces published on Google Play.
Starting in January 2026, the Watch Face Format will be required for watch faces to be installed on all Wear OS devices.
Learn more about the user-facing changes in this Help Center article.
Handle taps in watch faces
Stay organized with collections
Save and categorize content based on your preferences.
A user can interact with your watch face in many ways.
For example, a user might tap the watch face to learn what song is currently playing or
to see the day's agenda. Wear OS by Google lets watch faces accept
the single-tap gesture at a given location on the watch face, as long as there's not another
UI element that also responds to that gesture.
To implement an interactive watch face, first construct the
watch face style, and then implement gesture handling as described in this guide.
Handle tap events
The watch face is only given tap events, which are events where the user puts a finger
down on the screen and then lifts it. If the user performs any other
type of gesture while their finger is on the touchscreen, the watch face receives a
cancel event, as all other gestures are reserved by the system for other functions.
To handle tap gestures, use
setTapListener()
to add a
TapListener
.
The listener is called whenever the user taps on the watch face.
The watch face receives the following types of touch events:
-
TapType.DOWN
:
when the user puts their finger down on the touchscreen
-
TapType.UP
:
when the user lifts the finger from the touchscreen
-
TapType.CANCEL
:
when the system detects that the user performs a gesture other than a tap
A
TapType.DOWN
event and the successive TapType.UP
event are verified as a tap according to the value returned by
android.view.ViewConfiguration.getScaledTouchSlop
.
Don't trigger an action when the watch face receives a TapType.CANCEL
event, because the system is already processing the gesture.
For more information, see onTapEvent
.
The
watch face sample app demonstrates the best practices for configuring a watch face.
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 2024-11-12 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-11-12 UTC."],[],[],null,["# Handle taps in watch faces\n\nA user can interact with your watch face in many ways.\nFor example, a user might tap the watch face to learn what song is currently playing or\nto see the day's agenda. Wear OS by Google lets watch faces accept\nthe single-tap gesture at a given location on the watch face, as long as there's not another\nUI element that also responds to that gesture.\n\nTo implement an interactive watch face, first construct the\nwatch face style, and then implement gesture handling as described in this guide.\n\nHandle tap events\n-----------------\n\nThe watch face is only given tap events, which are events where the user puts a finger\ndown on the screen and then lifts it. If the user performs any other\ntype of gesture while their finger is on the touchscreen, the watch face receives a\ncancel event, as all other gestures are reserved by the system for other functions.\n\n\nTo handle tap gestures, use\n[`setTapListener()`](/reference/kotlin/androidx/wear/watchface/WatchFace#setTapListener(androidx.wear.watchface.WatchFace.TapListener)) to add a\n[`TapListener`](/reference/kotlin/androidx/wear/watchface/WatchFace.TapListener).\nThe listener is called whenever the user taps on the watch face.\n\nThe watch face receives the following types of touch events:\n\n- TapType.DOWN:\n when the user puts their finger down on the touchscreen\n\n- TapType.UP:\n when the user lifts the finger from the touchscreen\n\n- TapType.CANCEL:\n when the system detects that the user performs a gesture other than a tap\n\nA\n`TapType.DOWN` event and the successive `TapType.UP`\nevent are verified as a tap according to the value returned by\n[android.view.ViewConfiguration.getScaledTouchSlop](/reference/android/view/ViewConfiguration#getScaledTouchSlop()).\n\nDon't trigger an action when the watch face receives a `TapType.CANCEL`\nevent, because the system is already processing the gesture.\n\nFor more information, see [onTapEvent](https://developer.android.com/reference/androidx/wear/watchface/WatchFace.TapListener#onTapEvent(kotlin.Int,androidx.wear.watchface.TapEvent,androidx.wear.watchface.ComplicationSlot)).\n\nRelated resources\n-----------------\n\n\nThe\n[watch face sample app](https://github.com/android/wear-os-samples) demonstrates the best practices for configuring a watch face."]]