Wear OS 版本说明

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

2024 年 11 月 21 日 - Wearable SDK 19.0.0

Wearable SDK 19.0.0 版包含一些 SDK 更新。更新包括:

  • 将库依赖项更新为最新版本。
  • 移除了包含 MessageOptions 参数的不受支持的 sendMessage() API 变体。

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 更新,以便支持下一版穿戴式设备支持库。更新内容包括:

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

2022 年 2 月 16 日 - Wearable 支持库 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 复杂功能类型可正确启动权限请求活动,而不会使表盘崩溃。

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 进行了一项无线下载更新,以此重新启用了针对后台应用的 alarm 和作业。

虽然此政策变更有助于更灵活地开发应用,但后台 alarm 和作业仍然受 Android P 的其他限制,包括适用于应用待机模式分桶的限制。请遵循最佳实践,确保您的应用无论在哪个分桶都能正常运行。

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

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

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

如有任何 bug 或反馈,请通过 Wear OS by Google 谷歌问题跟踪器提交。您越早提交 bug,我们在最终版本中包含修复的可能性就越高。

已知问题

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

Wear OS 映像方面的问题

  • 当您位于任何应用中时,如果按手表侧面的电源按钮,可能会返回到上一个界面而不是表盘。

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

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

Wear 模拟器方面的问题

  • 配对手机上的来电不会在配对模拟器中显示(或镜像)为来电。
  • 如果您使用 SDK 管理器安装(或者确认您已安装)最新版本的 Android P 或中国版,在您选择相应选项后,其旁边的复选框可能会变为取消选中状态。如果遇到上述情况,请再选择一次相应选项。
  • 在模拟器执行冷启动时,系统可能会显示以下错误消息:“您的设备内部出现了问题。Contact the manufacturer for details.”此错误不会影响功能正常运行。向下滚动并点击 OK,即可开始测试应用。
  • 语音回复功能在模拟器上可能无法运行。例如,如果您在 Wear 模拟器上收到一条 Google Hangouts 消息通知,并尝试通过语音回复该消息,系统会显示“Google keeps stopping”错误消息,并会阻止您通过语音进行回复。
  • 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 的 Action。您还可以利用手表专用的全新响应模板。有关 Actions on Google 的最佳实践包括:

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

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

开发者预览版 2 中的省电功能

如以下部分所述,现在可以通过电源相关功能延长电池续航时间。本部分中有关开发者预览版 2 的信息将取代有关开发者预览版 1 的电源相关信息。

新模式:增强省电模式

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

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

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

限制后台活动

为了延长电池续航时间,后台运行的应用无法再启动 alarm 和作业,除非手表已在充电器上放好。例外情况包括表盘和在用的复杂功能。

注意:如果您的应用必须始终运行(例如,为了进行后台监控),我们建议您借助 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 的相关信息。推出最终的正式版之前,我们预计会对此预览版进行多次更新。如发现任何 bug,请通过 Wear OS by Google 谷歌问题跟踪器提交。您越早提交 bug,我们在最终版本中包含修复的可能性就越高。

已知问题

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

此开发者预览版中的亮点

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

  • 限制后台活动:为了延长电池续航时间,在后台的应用无法再使用 alarm 和作业。例外情况包括用户选择的表盘主题和复杂功能。我们会在开发者预览版中逐步推出这一功能,因此您可能目前还无法在手表上看到此功能。

    注意:如果您的应用必须始终运行,请使用 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
  • 蓝牙连接断开时,Wi-Fi 会关闭:为了延长电池续航时间,当手表断开蓝牙连接时,将不再自动连接到 Wi-Fi。例外情况包括应用请求高带宽网络的情况,以及手表连接到充电器的情况。我们会在开发者预览版中逐步推出这一功能,因此您可能最初不会在手表上看到此功能。

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

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

此外,该库的 2.3.0 版还包含与 ComplicationDrawable TextRenderer 相关的更新,适用于对文本范围附加了标记对象的文本。这些类可以改进对附加了 span 的文本的处理。只有特定 span 子集可以被渲染(如需了解哪些类型的 span 支持绘制,请参阅 setText 方法),因此在表盘中被渲染时,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.