Wear OS 版本说明

本页包含有关 Wear OS 版本(如 Wearable SDK 和穿戴式设备支持库)的信息。

2023 年 8 月 31 日 - Wearable SDK 18.1.0

Wearable SDK 版本 18.1.0 包含对 API 的次要更新,以支持下一个穿戴式设备支持库版本。更新包括:

2022 年 9 月 20 日 - Wearable SDK 18.0.0

Wearable SDK 版本 18.0.0 包含对 API 的次要更新,以支持下一个穿戴式设备支持库版本。更新包括:

  • WearableListenerService 支持以 Android 13 为目标平台的应用 - 问题 235538840
  • 新增了 MessageClient.sendRequest() 方法。

2022 年 2 月 16 日 - 穿戴式设备支持库 v2.9.0

2.9.0 版本的穿戴式设备支持库废弃了所有其余的类。请改用 Wear OS Jetpack 库

2021 年 10 月 29 日 - Wear OS Jetpack 库

Wear OS Jetpack 库可替代穿戴式设备支持库,而非与这些库搭配使用。穿戴式设备支持库不适用于 Wear OS 3。

2021 年 4 月 27 日 - Wearable SDK 17.1.0

Wearable SDK 17.1.0 版包含一些细微的 API 更新,以便支持下一版穿戴式设备支持库。

2020 年 9 月 28 日 - 穿戴式设备支持库 v2.8.1

2.8.1 版本的穿戴式设备支持库包含以下变更。

允许在使用表盘模板时停用 Jetifier

Android Studio 表盘模板现在使用 AndroidX 依赖项来允许停用 Jetifier。在 Android Studio 4.2 或更高版本中使用表盘模板时,就会应用此类修正。

2020 年 9 月 24 日 - 穿戴式设备支持库 v2.8.0

2.8.0 版本的穿戴式设备支持库包含以下变更。

回退功能(用于指定默认的非系统复杂功能提供程序)

表盘现在可以通过 setDefaultComplicationProviderWithFallbacks 来指定默认情况下使用的一个或多个非系统复杂功能提供程序。如果指定的所有非系统提供程序均未安装,系统会回退到使用默认的系统提供程序。

弃用了 WearableActivity

废弃了 WearableActivity。改为使用 AmbientModeSupport

弃用了 SKIP_CONFIRMATION_UI

废弃了 ActionConfirmationActivity.SKIP_CONFIRMATION_UI。自 Wear 2.0 发布以来,便已不再使用此 extra。

2020 年 5 月 15 日 - 穿戴式设备支持库 v2.7.0

2.7.0 版本的穿戴式设备支持库包含以下功能。

针对表盘的硬件加速

您现在可以在使用 CanvasWatchFaceService 类时请求经过硬件加速的画布。利用硬件加速可以提升表盘性能并访问更多界面性能数据。

如需了解详情,请参阅利用硬件加速提升表盘性能

2020 年 4 月 21 日 - 穿戴式设备支持库 v2.6.0

2.6.0 版本的穿戴式设备支持库包含以下改进。

迁移至 Android Jetpack

穿戴式设备支持库已迁移至 Android Jetpack。现有库现在可使用 androidx 命名空间映射并在 AndroidX 中访问,并且已弃用的支持库的所有依赖项均已移除。

此更改还可让您使用 Android Studio 4.0 及更高版本中的穿戴式设备支持库,从而解决了一些问题,例如问题 147972079

2019 年 8 月 28 日 - 穿戴式设备支持库 v2.5.0

2.5.0 版本的穿戴式设备支持库包含以下改进。

修复了使用 TYPE_NO_PERMISSION 复杂功能类型调用 startActivity() 时 ComplicationDrawable 存在的问题

ComplicationDrawable 现在包含一个 NEW_TASK 标志,该标志可确保来自 WatchFaceServicestartActivity() 调用包含 FLAG_ACTIVITY_NEW_TASK,以避免出现 android.util.AndroidRuntimeException

这项变更可让 TYPE_NO_PERMISSION 复杂功能类型正确启动权限请求 activity,而不是导致表盘崩溃。

2018 年 9 月 25 日 - Wearable SDK 16.0.0

Wearable SDK 16.0.0 版将所需的 Google Play 服务版本从 12.4 版降至 8.6 版。此变更可让现有应用更新到最新版本的 Wearable SDK,而无需更新 Google Play 服务 APK。

2018 年 6 月 11 日 - 更新到 Wear OS 开发者预览版 2

最近对 Wear OS 开发者预览版 2 进行的一项无线下载更新重新启用了针对后台应用的提醒和作业。

虽然此政策变更可提高应用开发的灵活性,但后台闹钟和作业仍受 Android P 的其他限制,包括与 应用待机模式存储分区相关的限制。 遵循 最佳实践,确保您的应用无论在哪个存储分区中都能正常运行。

此外,这项更新还可以限制后台应用访问用户输入和传感器数据,从而加强了对用户输入和数据的隐私保护。根据应用的要求,您可能需要使用前台服务来启用对传感器数据的持续访问。

2018 年 5 月 8 日 - Wear OS 开发者预览版 2

Wear OS 开发者预览版 2 增加了一些功能,例如改进的 Google 助理体验

请使用 Wear OS by Google 谷歌问题跟踪器提交任何 bug 或反馈。您提交 bug 的时间越早,在最终版本中纳入相应修复程序的可能性就越高。

已知问题

本部分包含预览版 2 的已知问题。

Wear OS 映像方面的问题

  • 当您处于任何应用中并按下手表侧面的电源按钮时,您可能会返回上一个屏幕,而不是表盘。

中国版 Wear OS 映像方面的问题

  • 当您处于任何应用中并按下手表侧面的电源按钮时,您可能会返回上一个屏幕,而不是表盘。
  • 与音量相关的声音设置无法保留。例如,有来电时手表会响铃,即使手表设为静音也是如此。此外,如果您调整闹钟音量,更改将不起作用。
  • 多个持续性通知可能无法正确显示。例如,如果同时设置了计时器和秒表,系统不会显示通知。我们建议您使用一个(而不是多个)持续性通知测试应用。
  • 中国版 Wear 应用商店尚未开放。开发者无法使用此渠道更新或安装新应用。我们建议您使用“adb”作为旁加载应用以进行测试的权宜解决方法。

Wear 模拟器方面的问题

  • 配对手机上的来电在配对模拟器中不会显示(或镜像为来电)。
  • 当您使用 SDK 管理器进行安装,或确认您安装了最新版本的 Android P 或中国版时,在您选中这些复选框后,它们旁边的复选框会变为取消选中状态。如果它们变为取消选中状态,请再次选择它们。
  • 当模拟器执行冷启动时,系统可能会显示以下错误:“您的设备出现内部问题。Contact the manufacturer for details.”此错误不会影响功能。向下滚动,然后点击 OK 以开始测试您的应用。
  • 语音回复在模拟器上可能无法正常运行。例如,如果您在 Wear 模拟器上收到一条有关 Google Hangouts 消息的通知,并尝试通过语音回复消息,系统会显示“Google 持续停止”错误消息,并且您无法通过语音回复。
  • Instant Run 可能与 Wear 模拟器不兼容。
  • 可能无法以程序化方式(例如使用“adb”或提交 bug 报告)截取屏幕截图。如果要解决此问题,请点击模拟器工具栏中的摄像头按钮来截取屏幕截图。

中国版 Wear 模拟器方面的问题

  • 配对手机上的来电可能不会在配对模拟器中显示或_镜像为来电。 相应地,未接电话的通知可能不会在模拟器中显示。此外,您可能无法从模拟器接听来电,在这种情况下,来电会继续响铃。
  • 当您使用 SDK 管理器进行安装,或确认您安装了最新版本的 Android P 或中国版时,在您选中这些复选框后,它们旁边的复选框会变为取消选中状态。如果它们变为取消选中状态,请再次选择它们。
  • 当模拟器执行冷启动时,系统可能会显示以下错误:“您的设备出现内部问题。Contact the manufacturer for details.”此错误不会影响功能。向下滚动,然后点击 OK 以开始测试您的应用。
  • Instant Run 可能与 Wear 模拟器不兼容。
  • 可能无法以程序化方式(例如使用“adb”或提交 bug 报告)截取屏幕截图。如果要解决此问题,请点击模拟器工具栏中的摄像头按钮来截取屏幕截图。

Wear 中的 Google 助理

Wear OS 增强了对 Google 助理的支持,让您无需编写 Android 代码即可打造支持穿戴式设备的体验。具体而言,您可针对 Actions on Google 平台进行构建,帮助用户使用您的产品和服务完成各种操作。

此外,Wear OS 现在支持更快的语音和轻触互动。 此外,该功能还支持建议条状标签。它们会执行以下操作:

  • 帮助用户快速完成互动
  • 为用户提供您的 Action 功能的相关提示

此外,Wear OS 现在还支持更直观的卡片,以及列表和轮播界面。

因此,您可以使用 DialogFlow模板Actions SDK 为 Wear OS 创建 Actions on Google。您还可以利用手表特有的新响应模板。有关 Actions on Google 的最佳做法包括:

  • 简短、简洁的对话框
  • 支持视觉和语音反馈

这些针对 Wear OS 中的 Google 助理的增强功能不依赖于 Android P,并且正在逐步向所有 Wear 2.0 用户推出。有关如何构建 Actions on Google 的说明,请参阅 与 Google 助理集成

开发者预览版 2 中的电量节省情况

如下一部分所述,与电源相关的功能可用于延长电池续航时间。本开发者预览版 2 部分中的信息将取代开发者预览版 1 的电源相关信息。

新模式:增强省电模式

当手表处于增强省电模式时,系统会显示一个默认的电量优化表盘。此时,系统会关闭以下所有功能:

  • 无线装置
  • 触摸屏
  • 倾斜唤醒功能

用户可以通过短按侧面按钮查看时间。长按可以让用户切换回完全可操作的模式并执行一些任务,例如使用 NFC 付款或回复消息。假设应用、表盘和复杂功能数据提供程序在增强型省电模式下不可用。

限制了后台活动

为了改进电源管理,除非手表位于充电器上,否则后台应用无法再启动闹钟和作业。例外情况包括表盘和活动的复杂功能。

注意:如果您的应用必须始终运行(例如为了后台监控),我们建议您通过 startForegroundService() 方法来使用前台服务。如需了解详情,请参阅后台服务限制。使用前台服务适用于特殊用例,例如运行状况监控。

提升了应用兼容性

为了提升应用兼容性,Android P 已开始对使用非 SDK 接口施加某些限制。制定计划,以便停止使用非 SDK 方法和字段。如果没有适用于您的用例的等效公开资源,请 告知我们

深色系界面系统主题

从 2018 年初开始,Wear OS 的默认界面主题已变成针对通知流和系统启动器采用颜色更深的背景。此更改旨在让应用更一目了然;针对这一新的界面主题检查应用的无障碍功能。

推出更新后的 Codelab

为了帮助您探索通过 Wear OS 进行开发的重要方式,我们推出了经过更新的 Codelab。例如,您可以试用新的基于 Kotlin 的表盘 Codelab,尝试使用 Kotlin 领域专用语言 (DSL) 进行实验。

2018 年 3 月 27 日 - Wear OS 开发者预览版 1

本部分包含 Wear OS by Google 谷歌开发者预览版 1 的相关信息。最终正式版发布前,预计会对此预览版进行多项更新。 使用 Wear OS by Google 谷歌问题跟踪器提交您发现的任何 bug。您提交 bug 的时间越早,我们在最终版本中进行修复的可能性就越高。

已知问题

  • 在 Wear OS 配套应用中,点按 Report wearable bug 似乎可以正常工作,但实际上并不会生成 bug 报告。使用 adb bugreport 解决问题。
  • 有时无法使用手表接听电话。如果接听失败,用户需要直接通过手机接听电话。
  • 在配对或启动预加载的应用后,有时会出现“Detected issues with APIcompatibility”(检测到 API 兼容性问题)错误。该错误消息很快就会消失,不会影响易用性。
  • 在手表和模拟器上的“设置”菜单中,生成 bug 报告选项会显示两次。如需生成 bug 报告,请逐一试用这两个选项,因为只有一个选项可以正常使用。当您点按可正常使用的选项时,系统会显示一个消息框,指示正在生成 bug 报告。
  • 在中国版中,语音输入会导致应用崩溃。例如,语音搜索或您使用语音添加提醒时,会发生这种情况,因为此功能使用语音输入 API。 测试时,请使用键盘或手写输入,而不要使用语音输入。
  • 中国版 Wear 应用商店尚未开放。开发者无法使用此渠道更新或安装新应用。我们建议您使用“adb”作为旁加载应用以进行测试的权宜解决方法。

此开发者预览版中的精彩功能

开发者预览版 1 提供以下应用测试功能:

  • 限制了后台 Activity:为了改进电源管理,后台应用无法再使用闹钟和作业。例外情况包括表盘和用户选择的复杂功能。我们会在开发者预览版中逐步推出这一功能,因此您可能不会立即在手表上看到它。

    注意:如果您的应用必须始终运行,请使用 startForegroundService() 方法对其进行修改,使其成为前台服务。如需了解更多详情,请参阅后台服务限制

  • 对应用使用非 SDK 接口的限制:为了提升应用兼容性,Android P 已开始 对使用非 SDK 接口施加了某些限制。 制定计划,逐步停止使用非 SDK 方法和字段。 如果没有适用于您的用例的等效公开资源,请 告知我们
  • 深色界面系统主题:从 2018 年初开始,Wear OS 的默认界面主题已切换为通知流和系统启动器采用颜色更深的背景。此更改旨在让应用更一目了然;请使用以下新的界面主题检查应用的无障碍功能。
  • 摘下手表后,无线装置会关闭:为了改进电源管理,当检测到手表长时间离开身体后,蓝牙无线装置、Wi-Fi 无线装置和手机无线装置都会关闭。我们会在开发者预览版中逐步推出这一功能,因此您最初可能还无法在手表上看到它。如果此功能导致开发过程出现问题,您可以使用以下命令“adb”将其停用:
    adb shell settings put global off_body_radios_off_for_small_battery_enabled 0
  • 断开蓝牙连接后,WLAN 会关闭:为了改进电源管理,当手表断开蓝牙连接后,手表将不再自动连接到 WLAN。例外情况包括应用请求高带宽网络的情况,以及手表连接到充电器的情况。我们会在开发者预览版中逐步推出这一功能,因此您最初可能还无法在手表上看到它。

穿戴式设备支持库 v2.3.0 更新

穿戴式设备支持库的 v2.3.0 文档更新包含品牌更名方面的更新。

此外,该库的 2.3.0 版还更新了 ComplicationDrawable TextRenderer,适用于具有附加到文本范围的标记对象的文本。这些类可以改进跨屏文本的处理效果。 只能渲染特定 span 子集(请参阅 setText 方法了解可以绘制的 span 类型),以便这些 span 在表盘中进行渲染时不会显得格格不入。

2018 年 3 月 15 日 - Wear 品牌更名

本部分包含与 Wear OS 功能相关的信息。

Android Wear 改用新名称

Android Wear 已更名为 Wear OS by Google 谷歌。

2018 年 2 月 27 日 - 微光模式更新

本部分包含与 Android Wear 新功能相关的信息。

新增用于支持微光模式的类

27.1.0 版本的 Android 支持库包含一个新类,即 AmbientModeSupport,该类取代了现已弃用的 AmbientMode 类。我们计划在接下来几周内推出示例更新。

2018 年 1 月 25 日 - 最终模拟器及更多信息

本部分包含与 Android Wear 新功能相关的信息。

Android 模拟器:针对 Wear 的更新

针对 Android 模拟器的最终 Wear 相关更新现已可用于测试基于 API 版本 26 的应用。

穿戴式设备支持库 v2.2.0 中的增强功能

2.2.0 版本的穿戴式设备支持库包含下述更新。

新增未读通知指示器

由于用户想要了解未读通知,因此我们提供了一种新的指示器:表盘底部的圆圈点。如果您希望自行管理通知,则可以使用 setHideNotificationIndicator 隐藏默认指示器并显示自己的通知,或使用 setShowUnreadCountIndicator 在状态栏中显示通知计数。

您可以使用 setAccentColor 方法自定义未读通知指示器外圈的颜色。

注意:Wear 2.8.0 正式版中未启用未读通知指示器。请改用最新的 Wear 模拟器测试您的实现。 从下一个消费者版本的 Wear(版本 2.9.0)开始,系统将在默认情况下显示未读通知指示器。

ComplicationDrawable 类的增强功能

当系统指示值 TYPE_NO_PERMISSION 时, ComplicationDrawable 类会针对被点按的表盘发起权限请求,这表示该表盘缺少获取复杂功能数据的权限。

此外,当 ComplicationDrawable 类完成图片加载或“点按触发突出显示”设置过期后,该类便会自行失效。如需响应这种失效情况(例如重新绘制表盘),请添加 Drawable.Callback

已知问题

  • 如果您在模拟器中启用影院模式(如 更改屏幕和亮度设置中所述),模拟器可能会一直卡在影院模式。若要解决此问题,您需要清除模拟器数据;请参阅 运行和停止模拟器以及清除数据
  • 在 API 级别为 25 或 26 的模拟器的窗口中,电源按钮无法正常使用。请改用电源按钮以外的按钮。 具体来说,如需切换到氛围模式(例如,就像用户用手掌遮盖屏幕一样),请使用显示屏右侧的模拟器工具栏中的电源按钮。 如需在交互模式下启动应用启动器,请使用模拟器工具栏中的“主屏幕”按钮。
  • 在中国版的模拟器中,如果您使用手写输入法,屏幕可能会开始闪烁。随后,当您点击屏幕键盘按钮时,键盘会遮挡半个屏幕。

2017 年 12 月 18 日 - 对 Google Play 服务的新访问权限

本部分包含与 Android Wear 新功能相关的信息。

停止使用 GoogleApiClient 类

11.8.0 版开始的 Google Play 服务,请将您的 Wear 应用从 GoogleApiClient 类中迁出,改为使用基于 GoogleApi 类和 Tasks API 的 API 客户端对象。

注意:这项更新不适用于中国版 Android Wear 应用,此类应用通常使用 10.2.0 版本的 Google Play 服务。

如需了解详情,请参阅以下内容:

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:

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.