SourceType

The value of a data source, which updates a real-time value that appears on the watch face.

Introduced in Wear OS 4.

Time and day

The Watch Face Format supports the following data sources related to the time and day:

UTC_TIMESTAMP
The number of milliseconds that have elapsed since midnight UTC on January 1, 1970.
MILLISECOND
An integer value that represents the millisecond field of a ZonedDateTime object for the current time. This value is always between 0 and 999, inclusive.
SECOND
An integer value that represents the second field of a ZonedDateTime object for the current time. This value is always between 0 and 59, inclusive.
SECOND_Z
A string that represents the second field of a ZonedDateTime object for the current time, with leading zeros to make the value 2 characters long. This value is always between 00 and 59, inclusive.
SECOND_MILLISECOND
A floating-point value that combines the second and millisecond fields of a ZonedDateTime object that represents the current time. This value is always between 0.0 and 59.999, inclusive.
SECONDS_IN_DAY
The number of seconds that have elapsed during the current day, based on the values for HOUR_0_23, MINUTE, and SECOND. This value is always between 0 and 86399 ($ 24 * 60 * 60 - 1 $), inclusive.
MINUTE
An integer value that represents the minute field of a ZonedDateTime object for the current time. This value is always between 0 and 59, inclusive.
MINUTE_Z
A string value that represents the minute field of a ZonedDateTime object for the current time, with leading zeros to make the value 2 characters long. This value is always between 00 and 59, inclusive.
MINUTE_SECOND
A floating-point value that combines the minute and second fields of a ZonedDateTime object that represents the current time. This value is always between 0.0 and $ 59 \frac{59}{60} $, inclusive.
HOUR_0_11
The 12-hour component of the current time, represented as a value between 0 and 11 inclusive. If the current CLOCK_HOUR_OF_AMPM is 12, such as in 12:34 PM, this value is converted to 0.
HOUR_0_11_Z
A string that represents the 12-hour component of the current time -- from 00 to 11 inclusive -- using the Wear OS device's current time zone. If this value is less than 10, it includes a leading zero.
HOUR_0_11_MINUTE
A floating-point value the combines a modified CLOCK_HOUR_OF_AMPM field and minute field of a ZonedDateTime object that represents the current time. This value is always between 0.0 and $ 11 \frac{59}{60} $, inclusive.
HOUR_1_12
The 12-hour component of the current time, represented as a value between 1 and 12 inclusive. If the current HOUR_OF_DAY is 0, such as in 0:12 (12:12 AM), this value is converted to 12.
HOUR_1_12_Z
A string that represents the 12-hour component of the current time -- from 01 to 12 inclusive -- using the Wear OS device's current time zone. If this value is less than 10, it includes a leading zero.
HOUR_1_12_MINUTE
A floating-point value the combines the CLOCK_HOUR_OF_AMPM and minute fields of a ZonedDateTime object that represents the current time. This value is always between 1.0 and $ 12 \frac{59}{60} $, inclusive.
HOUR_0_23
The 24-hour component of the current time, represented as a value between 0 and 23 inclusive. If the value is 24, such as in 24:13 (12:13 AM the next day), this value is converted to 0.
HOUR_0_23_Z
A string that represents the 24-hour component of the current time -- from 00 to 23 inclusive -- using the Wear OS device's current time zone. If this value is less than 10, it includes a leading zero.
HOUR_0_23_MINUTE
A floating-point value the combines the hour and minute fields of a ZonedDateTime object that represents the current time. This value is always between 0.0 and $ 23 \frac{59}{60} $, inclusive.
HOUR_1_24
The 24-hour component of the current time, represented as a value between 1 and 24 inclusive. If the value is 0, such as in 0:12 (12:12 AM), this value is converted to 24.
HOUR_1_24_Z
A string that represents the 12-hour component of the current time -- from 01 to 24 inclusive -- using the Wear OS device's current time zone. If this value is less than 10, it includes a leading zero.
HOUR_1_24_MINUTE
A floating-point value the combines a modified hour field and minute field of a ZonedDateTime object that represents the current time. This value is always between 1.0 and $ 24 \frac{59}{60} $, inclusive.
DAY
An integer value that represents the day field of a ZonedDateTime object for the current date. This value is always between 1 and 31, inclusive.
DAY_Z
A string value that represents the day field of a ZonedDateTime object for the current date, with leading zeros to make the value 2 characters long. This value is always between 01 and 31, inclusive.
DAY_HOUR
A floating-point value that combines the day-of-month and hour fields of a ZonedDateTime object that represents the current date and time. This value is always between 1.0 and $ 31 \frac{23}{24} $, inclusive.
DAY_0_30
A modified version of the getDayOfMonth() value of a ZonedDateTime object that represents the current date, subtracted by 1. This value is always between 0 and 30, inclusive.
DAY_0_30_HOUR
A floating-point value that combines a modified day-of-month field and hour field of a ZonedDateTime object that represents the current date and time. This value is always between 0.0 and $ 30 \frac{23}{24} $, inclusive.
DAY_OF_YEAR
The number of days that have started since the calendar year changed. This value is always between 1 and 366 inclusive, and has a maximum value of 365 during non-leap years.
DAY_OF_WEEK
A modified version of the getDayOfWeek() value from a ZonedDateTime object that represents the current date. The Watch Face Format assigns a value of 1 to represent Sunday and a value of 7 to represent Saturday.
DAY_OF_WEEK_F
The current day of the week, represented as a full-length string. Examples include Sunday and Monday.
DAY_OF_WEEK_S
The current day of the week, represented as a shortened string. Examples include Sun and Mon.
MONTH
An integer value that represents the month field of a ZonedDateTime object for the current date. This value is always between 1 and 12, inclusive.
MONTH_Z
A string value that represents the month field of a ZonedDateTime object for the current date, with leading zeros to make the value 2 characters long. This value is always between 01 and 12, inclusive.
MONTH_F
The current month of the year, represented as a full-length string. Examples include January and December.
MONTH_S
The current month of the year, represented as a shortened string. Examples include Jan and Dec.
DAYS_IN_MONTH
The number of days in the current month. This value is either 28 or 29 during February, 30 during April, June, September, and November, and 31 during all other months of the Gregorian calendar.
MONTH_DAY
A floating-point value that combines the month-of-year field and modified day-of-month field of a ZonedDateTime object that represents the current date. This value is always between 1.0 and $ 12 \frac{29}{30} $, inclusive.
MONTH_0_11
A modified version of the getMonthValue() value from a ZonedDateTime object that represents the current date. This value assigns a value of 0 to January and a value of 11 to December.
MONTH_0_11_DAY
A floating-point value that combines a modified month-of-year field and modified day-of-month field of a ZonedDateTime object that represents the current date. This value is always between 0.0 and $ 11 \frac{29}{30} $, inclusive.
YEAR
An integer value that represents the year field of a ZonedDateTime object for the current date. This value is clamped to always be between 1902 and 2100, inclusive.
YEAR_S
A 2-digit integer that represents the last 2 digits of the current year. For example, the value for 2023 is 23.
YEAR_MONTH
A floating-point value that combines the year field and modified day-of-month field of a ZonedDateTime object that represents the current date. January 2023 is represented as 2023.0, and December 2023 is represented as $ 2023 \frac {11}{12} $.
YEAR_MONTH_DAY
A floating-point value that combines the year field, a modified month-of-year field, and a modified day-of-month field of a ZonedDateTime object that represents the current date. January 1, 2023 is represented as 2023.0, and December 31, 2023 is represented as $ 2023 \frac{11 \frac{29}{30}}{12} \approx 2023.9972 $.
WEEK_IN_MONTH
An integer that represents the value of the ALIGNED_WEEK_OF_MONTH of a ChronoField object that represents the current date. This value is always between 0 and 5, inclusive.
WEEK_IN_YEAR
An integer that represents the value of the ALIGNED_WEEK_OF_YEAR of a ChronoField object that represents the current date. This value is always between 1 and 53, inclusive.
IS_24_HOUR_MODE
A boolean value that is equivalent to the current return value of is24HourFormat(), based on the user's chosen locale and preferences.
IS_DAYLIGHT_SAVING_TIME
A boolean value that is equivalent to calling inDaylightTime() on the TimeZone object for the current locale, and passing in a Date object that contains the current time. Indicates whether the currently-set time zone is now observing daylight saving time.
TIMEZONE
A string that is equivalent to calling getDisplayName() on the TimeZone object for the current locale. Returns the full time zone name, such as "Eastern Standard Time" for New York City's time zone during the winter.
TIMEZONE_ABB
A string that is equivalent to calling an overloaded version of getDisplayName() on the TimeZone object for the current locale, where the given style is SHORT. Returns an abbreviated time zone name, such as "EST" for New York City's time zone during the winter.
TIMEZONE_ID
A string that is equivalent to calling getId() on the TimeZone object for the current locale. Returns an IANA time zone ID value, such as America/New_York for New York City's time zone.
TIMEZONE_OFFSET
A string that is equivalent to calling getRawOffset() on the TimeZone object for the current locale. This value is always between -12 and +14, inclusive. Returns the value that should be added to UTC to get the standard time for the current time zone (not corrected for daylight saving time).
TIMEZONE_OFFSET_DST
A string that is equivalent to passing the current date into getOffset() on the TimeZone object for the current locale. This value is always between -12 and +14, inclusive. Returns the value that should be added to UTC to get the current local time, with daylight saving time taken into account if necessary.
AMPM_STATE
An integer that indicates whether the current time is before noon, or is noon or later. Possible values include 0 for AM and 1 for PM.
AMPM_POSITION

An integer that indicates where the AM or PM indicator should appear within a time string. Contains one of the following values:

  • 0 means that AM or PM should appear at the beginning of the string, such as AM 12:03.
  • 1 means that AM or PM should appear at the end of the string, such as 12:03 AM.
  • -1 means that it's unknown where AM or PM should appear in the string.
AMPM_STRING

A 2-character string that indicates the AM or PM status of the current time. The value is either "AM" or "PM".

Moon phase

The Watch Face Format supports the following data sources related to the moon phase:

MOON_PHASE_POSITION
An integer value indicating the number of days that have started since the most recent new moon. This value is always between 0 and 28, inclusive.
MOON_PHASE_TYPE

An integer that encodes the current moon phase. Possible values include the following:

  • 0 for the most recent new moon
  • 1 for an evening crescent moon
  • 2 for a first-quarter moon
  • 3 for a waxing gibbous moon
  • 4 for a full moon
  • 5 for a waning gibbous moon
  • 6 for a last-quarter moon
  • 7 for a morning crescent moon
MOON_PHASE_TYPE_STRING

A string that represents the current moon phase. Possible values include the following:

  • New Moon, when less than 0.5 day has elapsed, or more than 27.5 days have elapsed, since the most recent new moon.
  • Evening Crescent, when at least 0.5 day but less than 6.5 days have elapsed since the most recent new moon.
  • First Quarter, when at least 6.5 days but less than 7.5 days have elapsed since the most recent new moon.
  • Waxing Gibbous, when at least 7.5 days but less than 13.5 days have elapsed since the most recent new moon.
  • Full Moon, when at least 13.5 days but less than 14.5 days have elapsed since the most recent new moon.
  • Waning Gibbous, when at least 14.5 days but less than 20.5 days have elapsed since the most recent new moon.
  • Last Quarter, when at least 20.5 days but less than 21.5 days have elapsed since the most recent new moon.
  • Morning Crescent, when at least 21.5 days but less than 27.5 days have elapsed since the most recent new moon.

Language

The Watch Face Format supports the following data sources related to the user's language:

LANGUAGE_LOCALE_NAME
A string that represents the Wear OS device's current locale, expressed as a 2-character ISO 639-1 language code, an underscore, and a 2-character ISO 3166-1 region code. The United States variant of English is represented as en_US.

Health data

The Watch Face Format supports the following data sources related to the user's health data:

STEP_COUNT
The number of steps that the user has taken so far today, according to the Wear OS device sensors.
STEP_GOAL
The number of steps that the user has selected as their daily step goal. This value is never less than 1000.
STEP_PERCENT
An integer indicating the progress that the user has made toward their step goal today, expressed as a rounded percentage. This value is always between 0 and 100, inclusive.
HEART_RATE
The user's current heart rate, according to the Wear OS device sensors. This value is always between 0 and 240, inclusive.
HEART_RATE_Z
A string that represents the user's current heart rate, according to the Wear OS device sensors. This value is padded with zeros on the left as needed to make the value at least 2 characters long. So if the user's heart rate is measured as 65, this value is 65. If the user's heart rate is measured as 0, this value is 00.

Device sensors

The Watch Face Format supports the following data sources related to the device's sensors:

ACCELEROMETER_IS_SUPPORTED
Boolean value indicating whether the watch face can obtain accelerometer data from the current Wear OS device's sensors.
ACCELEROMETER_X
A floating-point value that indicates the current linear acceleration along the x-axis, according to the Wear OS device's accelerometer. Positive values indicate that, when the watch face is pointing at the sky or ceiling, the Wear OS device is accelerating to the right.
ACCELEROMETER_Y
A floating-point value that indicates the current linear acceleration along the y-axis, according to the Wear OS device's accelerometer. Positive values indicate that, when the watch face is pointing at the sky or ceiling, the Wear OS device is accelerating in the 12 o'clock (top) direction along the watch face.
ACCELEROMETER_Z

A floating-point value that indicates the current linear acceleration along the z-axis, according to the Wear OS device's accelerometer. Positive values indicate that, when the watch face is pointing at the sky or ceiling, the Wear OS device is accelerating toward the sky or ceiling.

ACCELEROMETER_ANGLE_X

A floating-point value that indicates the current angular acceleration, in degrees, relative to the x-axis. This value is always in the range $ [-90.0, 90.0 $].

ACCELEROMETER_ANGLE_Y

A floating-point value that indicates the current angular acceleration, in degrees, relative to the y-axis. This value is always in the range $ [-90.0, 90.0 $].

ACCELEROMETER_ANGLE_Z

A floating-point value that indicates the current angular acceleration, in degrees, relative to the z-axis. This value is always in the range $ [-90.0, 90.0 $].

ACCELEROMETER_ANGLE_XY

A floating-point value that is the sum of ACCELEROMETER_ANGLE_X and ACCELEROMETER_ANGLE_Y.

Device battery

The Watch Face Format supports the following data sources related to the device's current battery status:

BATTERY_PERCENT
An integer that indicates the Wear OS device's current battery charge, expressed as a percentage. A value of 100 indicates that the battery is full; a value of 0 indicates that the battery is critically low.
BATTERY_CHARGING_STATUS
A boolean that indicates whether the Wear OS device's battery is charging. If the battery is done charging and full, this value is true.
BATTERY_IS_LOW
A boolean that indicates whether the Wear OS device's battery is low. The exact threshold for this is manufacturer dependent. If the battery is charging, this value is false.
BATTERY_TEMPERATURE_CELSIUS
A floating-point value that indicates the temperature of the Wear OS device's battery, in degrees Celsius. The battery's raw temperature value, in tenths of a degree Celsius, is divided by 10 to get this value.
BATTERY_TEMPERATURE_FAHRENHEIT
A floating-point value that indicates the temperature of the Wear OS device's battery, in degrees Fahrenheit. This is a conversion from degrees Celsius.

Notifications

The Watch Face Format supports the following data source related to the device's notifications:

UNREAD_NOTIFICATION_COUNT
A string that represents the number of notifications delivered to this Wear OS device that the user hasn't yet read.