SourceType

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

Introduced in Wear OS 4.

Source Description Category Availability
UTC_TIMESTAMP The number of milliseconds that have elapsed since midnight UTC on January 1, 1970. Integer Version 1
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. Integer Version 1
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. Integer Version 1
SECOND_Z A string that represents the second field of a ZonedDateTime object forthe current time, with leading zeros to make the value 2 characters long. This value is always between 00 and 59, inclusive. String Version 1
SECOND_TENS_DIGIT The tens digit of the current seconds, for example, 4 for 12:03:47. Integer Version 2
SECOND_UNITS_DIGIT The units digit of the current seconds, for example, 7 for 12:03:47. Integer Version 2
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. Float Version 1
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. Integer Version 1
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. Integer Version 1
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. String Version 1
MINUTE_TENS_DIGIT The tens digit of the current minute, for example, 0 in 12:03. Integer Version 2
MINUTE_UNITS_DIGIT The unit digit of the current minute, for example, 3 in 12:03. Integer Version 2
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. Float Version 1
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. Integer Version 1
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. String Version 1
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. Float Version 1
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. Integer Version 1
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. string Version 1
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. Float Version 1
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. Integer Version 1
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. Integer Version 1
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. Float Version 1
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. Integer Version 1
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. String Version 1
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. Float Version 1
HOUR_TENS_DIGIT The tens digit of the current hour, for example, 1 in 12:03. Integer Version 2
HOUR_UNITS_DIGIT The units digit of the current hour, for example, 2 in 12:03. Integer Version 2
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. Integer Version 1
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. String Version 1
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. Float Version 1
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. Integer Version 1
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. Float Version 1
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. Integer Version 1
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. Integer Version 1
DAY_OF_WEEK_F The current day of the week, represented as a full-length string. Examples include Sunday and Monday. String Version 1
DAY_OF_WEEK_S The current day of the week, represented as a shortened string. Examples include Sun and Mon. String Version 1
FIRST_DAY_OF_WEEK Provides what the first day of the week is, based on getFirstDayOfWeek(), where 1 is Sunday and 7 is Saturday. For example, Sunday in US, Monday in France. Integer Version 2
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. Integer Version 1
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. String Version 1
MONTH_F The current month of the year, represented as a full-length string. Examples include January and December. String Version 1
MONTH_S The current month of the year, represented as a shortened string. Examples include Jan and Dec. String Version 1
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. Integer Version 1
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. Float Version 1
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. Integer Version 1
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. Float Version 1
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. Integer Version 1
YEAR_S A 2-digit integer that represents the last 2 digits of the current year. For example, the value for 2023 is 23. Integer Version 1
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} $. Float Version 1
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 $. Float Version 1
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. Integer Version 1
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. Integer Version 1
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. Boolean Version 1
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. Boolean Version 1
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. String Version 1
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. String Version 1
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. String Version 1
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). String Version 1
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. String Version 1
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. Integer Version 1
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.
Integer Version 1
AMPM_STRING A 2-character string that indicates the AM or PM status of the current time. The value is either "AM" or "PM". String Version 1
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. Integer Version 1
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
Integer Version 1
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.
String Version 1
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. String Version 1
STEP_COUNT The number of steps that the user has taken so far today, according to the Wear OS sensors. Integer Version 1
STEP_GOAL The number of steps that the user has selected as their daily step goal. This value is never less than 1000. Integer Version 1
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. Integer Version 1
HEART_RATE

The user's current heart rate, according to the Wear OS sensors. This value is always between 0 and 240, inclusive.

To always represent the heart rate as an integer, use the expression round(HEART_RATE).

Float or String, depending on the device Version 1
HEART_RATE_Z A string that represents the user's current heart rate, according to the Wear OS 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. String Version 1
ACCELEROMETER_IS_SUPPORTED Boolean value indicating whether the watch face can obtain accelerometer data from the current Wear OS device's sensors. 00. Boolean Version 1
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. Float Version 1
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. Float Version 1
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. Note: When the device is at rest, this value is approximately -9.8 to take gravity into account. Float Version 1
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. Note: When the device is at rest, this value is approximately -9.8 to take gravity into account. Float Version 1
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 $]. Float Version 1
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 $]. Float Version 1
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 $]. Float Version 1
ACCELEROMETER_ANGLE_XY A floating-point value that is the sum of ACCELEROMETER_ANGLE_X and ACCELEROMETER_ANGLE_Y. Float Version 1
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. Integer Version 1
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. Boolean Version 1
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. Boolean Version 1
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. Float Version 1
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. Float Version 1
UNREAD_NOTIFICATION_COUNT A string that represents the number of notifications delivered to this Wear OS device that the user hasn't yet read. Integer Version 1
WEATHER.IS_AVAILABLE Returns true if there is available weather data that can be rendered. Boolean Version 2
WEATHER.IS_ERROR

Returns true if there was an error loading weather data.

IS_ERROR and IS_AVAILABLE are not mutually exclusive. When both are true, the expected behavior of the watch face is to keep on rendering some weather data, but also show an indicator that there was an error in fetching data.

Boolean Version 2
WEATHER.CONDITION

An enum value representing the current weather condition.

Possible values are:

  • 0 - UNKNOWN_VALUE
  • 1 - CLEAR
  • 2 - CLOUDY
  • 3 - FOG
  • 4 - HEAVY_RAIN
  • 5 - HEAVY_SNOW
  • 6 - RAIN
  • 7 - SNOW
  • 8 - SUNNY
  • 9 - THUNDERSTORM
  • 10 - SLEET
  • 11 - LIGHT_SNOW
  • 12 - LIGHT_RAIN
  • 13 - MIST
  • 14 - PARTLY_CLOUDY
  • 15 - WINDY

Note: If using the WEATHER.CONDITION data source it is strongly recommended that all enum values are recognized by the watch face.

Integer Version 2
WEATHER.CONDITION_NAME A human-readable representation of the weather data, translated into the user’s preferred language. String Version 2
WEATHER.IS_DAY Returns true if the current condition applies during daylight. Useful because the length of day changes over the year. Boolean Version 2
WEATHER.TEMPERATURE The current temperature, in the user’s preferred unit. Integer Version 2
WEATHER.TEMPERATURE_UNIT

The temperature unit. Values can be:

  • 1 - CELSIUS
  • 2 - FAHRENHEIT
Integer Version 2
WEATHER.DAY_TEMPERATURE_LOW The lowest temperature for the day. Integer Version 2
WEATHER.DAY_TEMPERATURE_HIGH The highest temperature for the day. Integer Version 2
WEATHER.CHANCE_OF_PRECIPITATION The current chance of precipitation. This is a value in the range 0 to 100. Integer Version 2
WEATHER.UV_INDEX The current UV index. Integer Version 2
WEATHER.LAST_UPDATED The timestamp of when the weather data was last updated. This is given as the milliseconds in unix epoch time. Integer Version 2
For the following data sources, you can set index to an appropriate value to retrieve the forecast value. index starts from 0.
For example, you can use WEATHER.HOURS.2.CONDITION to retrieve the weather condition 2 hours from now.
WEATHER.HOURS.{index}.IS_AVAILABLE

Returns true if the forecast weather data is available for index hours from now.

Developers should check this value before accessing any hour-based weather data for the given index value.

Boolean Version 2
WEATHER.HOURS.{index}.CONDITION

The forecast weather condition, index hours from now.

The returned values are the same as for WEATHER.CONDITION.

Integer Version 2
WEATHER.HOURS.{index}.CONDITION_NAME A human-readable representation of the forecast weather condition, index hours from now, in the user’s preferred language. String Version 2
WEATHER.HOURS.{index}.IS_DAY Returns true if it is daylight index hours from now. Useful because the length of day changes over the year. Boolean Version 2
WEATHER.HOURS.{index}.TEMPERATURE The forecast temperature, index hours from now, in the user’s preferred unit Integer Version 2
WEATHER.HOURS.{index}.UV_INDEX The forecast UV index, index hours from now, in the user’s preferred unit. Integer Version 2
For the following data sources, you can set index to an appropriate value to retrieve the forecast value. index starts from 0.
For example, you can use WEATHER.DAYS.1.TEMPERATURE_LOW to retrieve tomorrow's low temperature value (1 day from now).
WEATHER.DAYS.{index}.IS_AVAILABLE

Returns true if the forecast weather data is available for index days from now.

Developers should check this value before accessing any day-based weather data for the given index value.

Boolean Version 2
WEATHER.DAYS.{index}.CONDITION_DAY

The day-time forecast weather condition, index days from now.

The returned values are the same as for WEATHER.CONDITION.

Integer Version 2
WEATHER.DAYS.{index}.CONDITION_DAY_NAME A human-readable representation of the day-time forecast weather condition, index days from now, in the user’s preferred language. String Version 2
WEATHER.DAYS.{index}.CONDITION_NIGHT

The night-time forecast weather condition, index days from now.

The returned values are the same as for WEATHER.CONDITION.

Integer Version 2
WEATHER.DAYS.{index}.CONDITION_NIGHT_NAME A human-readable representation of the night-time forecast weather condition, index days from now, in the user’s preferred language. String Version 2
WEATHER.DAYS.{index}.TEMPERATURE_LOW The lowest temperature forecast for the day, index days from now. Integer Version 2
WEATHER.DAYS.{index}.TEMPERATURE_HIGH The highest temperature forecast for the day, index days from now. Integer Version 2
WEATHER.DAYS.{index}.CHANCE_OF_PRECIPITATION

The forecast chance of precipitation, index days from now.

The returned value is in the range 0 to 100.

Integer Version 2
WEATHER.DAYS.{index}.CHANCE_OF_PRECIPITATION_NIGHT

The forecast chance of precipitation at night, index days from now.

The returned value is in the range 0 to 100.

Integer Version 2
WEATHER.DAYS.{index}.UV_INDEX The forecast UV index, index days from now. Integer Version 2