This page contains information about Wear OS releases, such as the Wearable SDK and Wearable Support Library.
2024-November-21 Wearable SDK 19.0.0
Wearable SDK version 19.0.0 includes minor SDK updates. Updates include:
- Updated library dependencies to latest versions.
- Removed an unsupported
sendMessage()
API variant that included aMessageOptions
parameter.
2023-August-31 Wearable SDK 18.1.0
Wearable SDK version 18.1.0 includes minor API updates to support the next Wearable Support Library release. Updates include:
- Phone Switching Support, see
NodeClient.OnNodeMigratedListener
for more details. - Additional documentation for
MessageClient
send and reply messaging. - Updated links in API descriptions.
2022-September-20 Wearable SDK 18.0.0
Wearable SDK version 18.0.0 includes minor API updates to support the next Wearable Support Library release. Updates include:
WearableListenerService
support for apps targeting Android 13—issue 235538840.- New
MessageClient.sendRequest()
method.
2022-February-16 Wearable Support Library v2.9.0
Version 2.9.0 of the Wearable Support Library deprecates all remaining classes. Use the Wear OS Jetpack libraries instead.
2021-October-29 Wear OS Jetpack Library
The Wear OS Jetpack libraries are replacements for the Wearable Support Libraries, and they aren't designed to be used together. The Wearable Support Library does not work on Wear OS 3.
2021-April-27 Wearable SDK 17.1.0
Wearable SDK version 17.1.0 includes minor API updates to support the next Wearable Support Library release.
2020-September-28 Wearable Support Library v2.8.1
Version 2.8.1 of the Wearable Support Library includes the following change.
Permit disabling of Jetifier when using the Watch Face template
The Android Studio Watch Face template now uses AndroidX dependencies to permit Jetifier to be disabled. These fixes apply when using the Watch Face template with Android Studio 4.2 or higher.
2020-September-24 Wearable Support Library v2.8.0
Version 2.8.0 of the Wearable Support Library includes the following changes.
Fallback capability for specifying default non-system complication providers
Watch faces can now use setDefaultComplicationProviderWithFallbacks
to specify
one or more non-system complication providers to be used by default. If none of
the specified non-system providers are installed, the system falls back to
using the default system provider.
WearableActivity deprecated
WearableActivity
is deprecated. Use AmbientModeSupport
instead.
SKIP_CONFIRMATION_UI deprecated
ActionConfirmationActivity.SKIP_CONFIRMATION_UI
is deprecated. This extra has been unused since the release of Wear 2.0.
2020-May-15 Wearable Support Library v2.7.0
Version 2.7.0 of the Wearable Support Library includes the following feature.
Hardware accleration for watch faces
You can now ask for a hardware-accelerated canvas when using the
CanvasWatchFaceService
class. Take advantage of hardware acceleration to
improve the performance of your watch face and to access more UI performance
data.
For more information, see Improve your watch face performance with hardware acceleration.
2020-April-21 Wearable Support Library v2.6.0
Version 2.6.0 of the Wearable Support Library includes the following improvement.
Migration to Android Jetpack
The Wearable Support Library has been migrated to Android Jetpack.
Existing libraries are now mapped and accessible in AndroidX
using the androidx
namespace, and all dependencies on the deprecated Support
Library have
been removed.
This change also lets you use the Wearable Support libraries in Android Studio 4.0 and higher, which resolves issues like issue #147972079.
2019-August-28 Wearable Support Library v2.5.0
Version 2.5.0 of the Wearable Support Library includes the following improvement.
Fix for ComplicationDrawable when startActivity() is called with TYPE_NO_PERMISSION complication type
ComplicationDrawable
now includes a NEW_TASK
flag that ensures that startActivity()
calls that
originate from a WatchFaceService
include FLAG_ACTIVITY_NEW_TASK
to avoid an android.util.AndroidRuntimeException
.
This change lets the TYPE_NO_PERMISSION
complication type properly launch the permission request activity rather than
crashing the watch face.
2018-September-25 Wearable SDK 16.0.0
Wearable SDK version 16.0.0 lowers the required version of Google Play services from version 12.4 to version 8.6. This change lets existing apps update to the latest version of the Wearable SDK without requiring an update to the Google Play services APK.
2018-June-11 Update to Wear OS Developer Preview 2
A recent over-the-air update to the Wear OS Developer Preview 2 has re-enabled alarms and jobs for background apps.
While this policy change supports increased flexibility in app development, background alarms and jobs continue to be subject to other Android P restrictions, including the ones that pertain to App Standby Buckets. Follow the best practices to ensure your apps behave well, whichever bucket the apps are in.
This update also strengthens user input and data privacy by limiting a background app's access to user input and sensor data. Depending on an app’s requirements, you might need to use a foreground service to enable continual access to sensor data.
2018-May-8 Wear OS Developer Preview 2
Wear OS Developer Preview 2 has features such as an improved Google Assistant experience.
Submit any bugs or feedback using the Wear OS by Google issue tracker. The earlier you submit them, the higher the likelihood that the fixes are included in the final release.
Known issues
This section contains known issues for the Preview 2 release.
Issues for the Wear OS image
- When you are in any app and you press the power button on the side of the watch, you might be returned to the previous screen rather than to the watch face.
Issues for the Wear OS for China image
- When you are in any app and you press the power button on the side of the watch, you might be returned to the previous screen rather than to the watch face.
- Volume-related sound settings are not persisted. For example, an incoming call results in audible rings on the watch, even if the sound on the watch is set to off. And if you adjust the Alarm Volume, the change has no effect.
- Multiple ongoing notifications might not display correctly. For example, if both a timer and a stopwatch are set, notifications are not displayed. We recommend that you test your app with one ongoing notification rather than with more than one.
- The Wear app store in the China version does not work. Developers can't update or install new apps using that channel. We recommend using `adb` as a workaround to side-load your application for testing.
Issues for the Wear emulator
- An incoming phone call to a companion phone is not shown, or _mirrored_, as an incoming call in the paired emulator.
- When you use the SDK manager to install or confirm that you have the latest installation of Android P or the China version, the checkboxes next to those selections can become unselected after you select them. If they become unselected, select them a second time.
- When the emulator performs a cold boot, the following error might be displayed: "There's an internal problem with your device. Contact the manufacturer for details." This does not affect functionality. Scroll down and click OK to begin testing your app.
- Voice reply might not work on the emulator. For example, if you receive a notification for a Google Hangouts message on the Wear emulator and you try to reply to the message by voice, a "Google keeps stopping" error message occurs and you are prevented from replying by voice.
- Instant Run might be incompatible with the Wear emulator.
- Taking a screenshot programmatically, such as using `adb` or by taking a bug report, might not work. As a workaround, click the camera button on the emulator toolbar to capture a screenshot.
Issues for the China version of the Wear emulator
- An incoming phone call to a companion phone might not be shown, or _mirrored_, as an incoming call in the paired emulator. Accordingly, notifications of missed calls might not be shown in the emulator. Additionally, you might not be able to answer a call from the emulator, in which case the call continues to ring.
- When you use the SDK manager to install or confirm that you have the latest installation of Android P or the China version, the checkboxes next to those selections can become unselected after you select them. If they become unselected, select them a second time.
- When the emulator performs a cold boot, the following error might display: "There's an internal problem with your device. Contact the manufacturer for details." This does not affect functionality. Scroll down and click OK to begin testing your app.
- Instant Run might be incompatible with the Wear emulator.
- Taking a screenshot programmatically, such as using `adb` or by taking a bug report, might not work. As a workaround, click the camera button on the emulator toolbar to capture a screenshot.
Google Assistant on Wear
Enhanced support for the Assistant on Wear OS lets you build a wearable-ready experience without writing Android code. Specifically, you can build for the Actions on Google platform, helping your users get things done with your products and services.
Additionally, Wear OS now supports faster interactions by voice and touch. Suggestion chips are also supported. They do the following:
- Help users complete interactions quickly
- Give users hints about your Action's capability
Moreover, Wear OS now supports more visual cards, as well as lists and carousels.
Thus, you can use DialogFlow
,
templates, or
the Actions SDK to
create Actions on Google for Wear OS. You can also take advantage of new
response templates that are specific to a watch. Best practices for Actions on
Google include:
- Short, concise dialog
- Enabling both visual and vocal feedback
These enhancements for the Assistant on Wear OS do not depend on Android P and are rolling out to all Wear 2.0 users. For an introduction to building Actions on Google, see Integrate with Google Assistant.
Battery Savings in Developer Preview 2
As described in the following in section, power-related features are available to increase battery life. The information in this Developer Preview 2 section supersedes the power-related information for Developer Preview 1.
New mode: Enhanced battery saver
While a watch is in the enhanced battery saver mode, a default power-optimised watch face displays. All of the following are turned off:
- Radios
- The touch screen
- The tilt-to-wake feature
Users can see the time by short-pressing the side button. A long press lets the user switch back to a fully operational mode and perform tasks, such as paying with NFC or replying to a message. Assume that apps, watch faces, and complication data providers are unavailable in enhanced battery saver mode.
Limited background activity
To improve power management, apps in the background can no longer start alarms and jobs unless the watch is on the charger. Exceptions include watch faces and active complications.
Note: If your app must always run, such as for background
monitoring, we recommend that you use a foreground service by using the
startForegroundService()
method. See Background
service limitations for more details. Using a foreground service
is appropriate for exceptional use cases such as health monitoring.
Improved app compatibility
To improve app compatibility, Android P has begun implementing certain restrictions on the use of non-SDK interfaces. Make plans to migrate away from non-SDK methods and fields. If no public equivalent is available for your use case, let us know.
Dark UI system theme
Since the beginning of 2018, Wear OS has switched to a default UI theme that has a darker background for the notifications stream and system launcher. This change is intended to improve glanceability for your apps; check your app's accessibility with this new UI theme.
Updated codelabs are available
To help you explore important ways to develop with Wear OS, updated codelabs are available. For example, try the new Kotlin-based watch face codelab to experiment with Kotlin domain-specific language, or DSL.
2018-March-27 Wear OS Developer Preview 1
This section contains information about Developer Preview 1 of Wear OS by Google. Several updates to this preview are expected before the final production release. Submit any bugs you find using the Wear OS by Google issue tracker. The earlier you submit them, the higher the likelihood that we can include the fixes in the final release.
Known issues
- In the Wear OS companion app, tapping Report wearable bug appears to work,
but no bug report is actually generated.
Use
adb bugreport
as a workaround. - Accepting a phone call using the watch does not always succeed. If it does not succeed, the user needs to accept the call from the phone directly.
- A "Detected problems with API compatibility" error sometimes appears after pairing or launching a preloaded app. That error message disappears after a short time and does not impact usability.
- In the Settings menu on the watch and in the emulator, the Take bug report option displays twice. To take a bug report, try using each of the two options, because only one is functional. When you tap the functional option, a toast displays, showing that a bug report is being generated.
- In the China version, voice input causes an app to crash. For example, this occurs with voice search or when you use voice to add a reminder because this functionality uses voice input APIs. For testing, use keyboard or handwriting input instead of voice input.
- The Wear app store in the China version does not work. Developers can't update or install new apps using that channel. We recommend using `adb` as a workaround to side-load your application for testing.
Highlights in this developer preview
Developer Preview 1 includes the following features for app testing:
-
Limited background activity: To improve power management, apps in the
background can no longer use alarms and jobs. Exceptions include watch
faces and complications that the user has selected. This feature will be rolled out
gradually in the developer previews, so you might not see it immediately on your
watch.
Note: If your app must always run, modify it to make it a foreground service using the
startForegroundService()
method. See Background service limitations for further details. - Restrictions on apps' use of non-SDK interfaces: To improve app compatibility, Android P has begun implementing certain restrictions on the use of non-SDK interfaces. Make plans to migrate away from non-SDK methods and fields. If no public equivalent is available for your use case, let us know.
- Dark UI system theme: Since the beginning of 2018, Wear OS has switched to a default UI theme that has a darker background for the notifications stream and system launcher. This change is intended to improve glanceability for your apps; check your app's accessibility with this new UI theme.
- Radios are off when the watch is off the body: To improve power management, the
Bluetooth radio, Wi-Fi radio, and cellular radio are off when the watch is detected as
off the body for an extended period. This feature will be rolled out gradually in the
developer previews, so you might not initially see it on your watch. If this feature
causes challenges in your development process, you can disable the feature using `adb`
using the following command:
adb shell settings put global off_body_radios_off_for_small_battery_enabled 0
- Wi-Fi is off when Bluetooth is disconnected: To improve power management, the watch no longer automatically connects to Wi-Fi when the watch disconnects from Bluetooth. Exceptions include the case of an app requesting a high bandwidth network, and the case of the watch attached to a charger. This feature will be rolled out gradually in the developer previews, so you might not initially see it on your watch.
Updates to the Wearable Support Library, v2.3.0
The v2.3.0 documentation update for the Wearable Support Library includes rebranding updates.
Additionally, v2.3.0 of the library includes updates related to
ComplicationDrawable
and
TextRenderer
for text that has markup objects attached to text ranges.
These classes have improved handling of
spanned texts.
Only a certain subset of spans can be rendered—see the
setText
method for the span types that can be drawn—so the spans don't
look out-of-place when rendered in a watch face.
2018-March-15 Rebrand of Wear
This section contains information about Wear OS features.
New name for Android Wear
Android Wear is renamed to Wear OS by Google.
2018-Feb-27 Ambient mode update
This section contains information about new Android Wear features.
New class for supporting ambient mode
The
27.1.0 version of the Android Support Library contains a new
class,
AmbientModeSupport
, which replaces the now-deprecated
AmbientMode
class. Updates to samples are planned in upcoming
weeks.
2018-Jan-25 Final emulator and more
This section contains information about new Android Wear features.
Android Emulator: Update for Wear
The final Wear-related update to the Android emulator is available for testing apps based on API version 26.
Enhancements in the Wearable Support Library, v2.2.0
The 2.2.0 version of the Wearable Support Library includes the updates described below.
A new unread notification indicator
Because users want to be aware of unread notifications, a new indicator
is provided: a circled dot at the bottom of the watch face. If you prefer
to manage notifications on your own, you can
use
setHideNotificationIndicator
to hide the default indicator and
display your own or
setShowUnreadCountIndicator
to display a notification count in the
status bar.
Customize the color of the outer ring of the unread notification
indicator with the
setAccentColor
method.
Note: The unread notifications indicator is not enabled in the production version of Wear 2.8.0. Test your implementation using the latest Wear emulator instead. Starting with the next consumer release of Wear (version 2.9.0), the unread notifications indicator will be displayed by default.
Enhancements to the ComplicationDrawable class
The
ComplicationDrawable
class starts a permission request for a
watch face that is tapped when the system indicates a value of
TYPE_NO_PERMISSION
, indicating that the watch face lacks
permission to get the complication data.
Additionally, the ComplicationDrawable
class invalidates itself when it finishes
loading images or when a tap highlight expires. To respond to this
invalidation—such as to redraw your watch face—add a
Drawable.Callback
.
Known issues
- If you activate Theater mode in the emulator, as described in Change screen & brightness settings, the emulator can remain stuck on Theater mode. Fixing the issue requires clearing the emulator data; see Run and stop an emulator and clear data.
- Within the window of an emulator for API level 25 or 26, the power button does not work. Use buttons other than the power button instead. Specifically, to switch to ambient mode—for example, as if a user covered the screen with their palm—use the power button on the emulator toolbar to the right of the display. To start the application launcher in interactive mode, use the Home button on the emulator toolbar.
- On the China version of the emulator, if you use the handwriting input method, the screen can begin flashing. Then, when you click the button for the on-screen keyboard, the keyboard blocks half the screen.
2017-Dec-18 New access to Google Play services
This section contains information about new Android Wear features.
Migrate away from the GoogleApiClient class
Starting with version
11.8.0 of Google Play services, migrate your Wear apps away from
the GoogleApiClient
class and instead use API client objects that are based on
the
GoogleApi
class and the Tasks API.
Note: This update does not apply to Android Wear apps for China, which generally use version 10.2.0 of Google Play services.
For more information, see the following:
- Migrating Wear Apps to GoogleApi
- Access Google APIs
-
Wearable
class documentation
New components for connecting with Google Play services
When you use classes that extend the
GoogleApi
class, such as
DataClient
and
MessageClient
, the Google Play services SDK manages
connections to Google Play services for you. Apps that use these classes no longer need to
create and manage GoogleApiClient
objects. See the blog post
Moving Past GoogleApiClient for more information.
For the replacements of Wear-related components for connecting to Google
Play services, see
Replacements for deprecated components.
For releases and known issues related to
Google Play services, see the Release Notes for
Google Play services.
Note: If you compile your app with the latest version of
Google Play services, users are prompted to update their devices to that
latest version. However, a known issue for apps that target API version
26 might prevent users from being prompted to update their devices. This
issue is described in the Release Notes for
Google Play services.
2017-Oct-25 Ambient mode and more
This section contains information about new Android Wear features.
Android Support Library, v27.0.0: Features and bugfixes
The
27.0.0 version of the Android Support Library contains new features
for Wear. Review the following section.
New, preferred way to support ambient mode
Ambient mode lets a Wear app remain visible to a user when the
device goes idle. The Android Support Library has a new,
preferred way for your apps to use ambient mode. The Wear team seeks
developer feedback about this significant change.
Specifically, using the
AmbientMode
class offers the following benefits:
- The
Activity
subclasses in the Android Support Library, such as
FragmentActivity
. Functionality for
support library fragments is available.
-
Architecture components, which are
lifecycle aware.
- Better support for Google
Sign-In.
Manifest metadata constants in the Android Support Library
Constants for Android Wear apps, used in the meta-data
tag
in the Android Manifest file, are now
available in the Android Support Library. To use the constants—for
standalone apps, notification bridging mode, and watch face preview
images—add a reference to the following in the dependencies section of
the app module's build.gradle
file, which requires the latest
version of the Google Repository:
Groovy
implementation 'com.android.support:wear:27.0.0'
Kotlin
implementation("com.android.support:wear:27.0.0")
Action drawer updates
Updates are available to the
WearableActionDrawerView
class, which is used for creating a wearable
action drawer. In the latest version:
- When menu items are modified, the action drawer properly updates.
- If set for an action drawer, the title displays correctly.
Inflation of the RoundedDrawable class
Assuming an API level of at least 24, the
RoundedDrawable
class can now be inflated from a drawable XML file;
see
Custom drawables.
Wearable Support Library, v2.1.0: Enhancements and more
The
2.1.0 version of the Wearable Support Library includes the updates
described in the following section, and requires Android Support Library version 26.0.2 or
higher.
Supply burn-in-safe images for ambient mode
The
ComplicationDrawable
class lets you supply burn-in-safe
images for ambient mode. Specifically, a
ComplicationData
object's burn-in protection small
image field lets a watch face display a small image in the
SMALL_IMAGE
complication type, in ambient mode, when burn-in
protection is enabled.
Tap event updates for complications
The
ComplicationDrawable
class has a new onTap
method
that lets your watch face pass tap events to complications. The new
method builds on the existing functionality in which a tap on the watch
face triggers the
WatchFaceService.Engine.onTapCommand
method.
You can pass the coordinates to a ComplicationDrawable
with
an onTap
call to launch the action associated with the
ComplicationDrawable
that contains the tap coordinates. When
the new onTap
method is called, you can use a return value
of true
to see whether a ComplicationDrawable
launched the action associated with it.
Additionally, the setHighlightDuration
method sets the
duration for a complication to remain highlighted after the
onTap
method is called.
Progress bar for ranged value complications
If you prefer to draw your own progress bar for ranged value
complications in your watch face, use the
setRangedValueProgressHidden
method of the
ComplicationDrawable
class to hide the ranged value progress
that's drawn by the ComplicationDrawable
.
2017-Oct-02 Android Wear beta
Date: 2017-Oct-02
Build: OWP4.170828.008
Supported device: LG Watch Sport
This section contains known issues for an Android Wear beta release. For
information about the beta program or to enroll,
see the
Android beta page.
Known issues
- Google Pay and its cards do not function with this Android Wear beta
release.
- Even if cellular connectivity is on, it is turned off after the beta
is installed. As a workaround, turn on cellular connectivity after
the beta is installed by navigating to
Settings > Connectivity > Cellular.
- If notifications are erratic or missing after a beta update,
or contacts were not synced, factory-reset your watch.
- In the Wear tutorial, which starts after a watch is set up, some cards
behave erratically, but they can be dismissed normally with a swipe.
- On Android 6.0 phones, phone call notifications are not
received on the watch.
- Heart rate monitoring sometimes fails after an update. As a workaround,
reboot the watch.
- The OTA card in the stream sometimes fails to enable an installation.
As a workaround, navigate to
Settings > System > About > System Updates.