Google 致力于为黑人社区推动种族平等。查看具体举措

Wear

打造适用于 Wear OS by Google 谷歌智能手表的应用。

下表列出了 androidx.wear 组中的所有工件。

工件 当前稳定版 下一候选版本 Beta 版 Alpha 版
wear 1.1.0 - - 1.2.0-alpha07
wear-input 1.0.0 - - 1.1.0-alpha01
wear-complications-data - - - 1.0.0-alpha10
wear-complications-provider - - - 1.0.0-alpha10
wear-watchface - - - 1.0.0-alpha10
wear-watchface-client - - - 1.0.0-alpha10
wear-watchface-complications-rendering - - - 1.0.0-alpha10
wear-watchface-data - - - 1.0.0-alpha10
wear-watchface-editor - - - 1.0.0-alpha10
wear-watchface-style - - - 1.0.0-alpha10
wear-ongoing - - - 1.0.0-alpha03
wear-phone-interactions - - - 1.0.0-alpha03
wear-remote-interactions - - - 1.0.0-alpha02
wear-tiles - - - 1.0.0-alpha01
wear-tiles-proto - - - 1.0.0-alpha01
wear-tiles-renderer - - - 1.0.0-alpha01
此库的最后更新时间:2021 年 3 月 24 日

声明依赖项

如需添加 Wear 的依赖项,您必须将 Google Maven 代码库添加到项目中。如需了解详情,请参阅 Google 的 Maven 代码库

在应用或模块的 build.gradle 文件中添加所需工件的依赖项:

dependencies {
    implementation "androidx.wear:wear:1.1.0"

    // Add support for wearable specific inputs
    implementation "androidx.wear:wear-input:1.0.0"
    implementation "androidx.wear:wear-input-testing:1.0.0"

    // Use to implement wear watchface complications
    implementation "androidx.wear:wear-complications-provider:1.0.0-alpha09"

    // Use to implement wear watchfaces
    implementation "androidx.wear:wear-watchface:1.0.0-alpha09"

    // Use to implement a watchface style and complication editor
    implementation "androidx.wear:wear-watchface-editor:1.0.0-alpha09"

    // Use to implement wear ongoing activities
    implementation "androidx.wear:wear-ongoing:1.0.0-alpha03"

    // Use to implement support for interactions from the Wearables to Phones
    implementation "androidx.wear:wear-phone-interactions:1.0.0-alpha03"
    // Use to implement support for interactions between the Wearables and Phones
    implementation "androidx.wear:wear-remote-interactions:1.0.0-alpha02"

    // Use to implement support for wear tiles
    implementation "androidx.wear:wear-tiles:1.0.0-alpha01"

    // Use to preview wear tiles in your own app
    debugImplementation "androidx.wear:wear-tiles-renderer:1.0.0-alpha01"
}

如需详细了解依赖项,请参阅添加构建依赖项

反馈

您的反馈将帮助我们改进 Jetpack。如果您发现了新问题,或对库的改进有某些建议,请告诉我们。创建新问题前,请先查看此库中的现有问题。您可以点击星标按钮,为现有问题投票。

创建新问题

如需了解详情,请参阅问题跟踪器文档

Wear Tiles 版本 1.0.0

版本 1.0.0-alpha01

2021 年 3 月 10 日

发布了 androidx.wear:wear-tiles:1.0.0-alpha01androidx.wear:wear-tiles-proto:1.0.0-alpha01androidx.wear:wear-tiles-renderer:1.0.0-alpha01版本 1.0.0-alpha01 中包含这些提交内容

新功能

  • Wear Tiles Renderer 库提供为 Wear OS 设备构建自定义图块的功能,以及可让系统提取图块并将其显示在表盘旁边的类。

Wear Ongoing 和 Interactions 版本 1.0.0

Wear-Ongoing Wear-Phone-Interactions 版本 1.0.0-alpha03

2021 年 3 月 10 日

发布了 androidx.wear:wear-ongoing:1.0.0-alpha03androidx.wear:wear-phone-interactions:1.0.0-alpha03版本 1.0.0-alpha03 中包含这些提交内容

新功能

  • 将 OAuthClient 从穿戴式设备支持库迁移到 AndroidX。迁移后的这个类已重命名为 RemoteAuthClient,它不但支持在穿戴式设备上进行远程身份验证,还支持添加 OAuth PKCE 扩展。此外,还提供了用于通信的其他处理程序类和辅助类。
  • 现在,使用新的 ConcurrentActivity.Builder 构造函数,可将正在进行的活动与具有标记的通知关联起来。

API 变更

  • 添加了对 Ongoing Activities 库中的通知标记的支持 (I653b4)
  • 将 OAuthClient 从 Wear 支持库迁移到 AndroidX 中,并添加了对 OAuth PKCE 扩展的支持 (I3eaa)

Wear-Remote-Interactions 版本 1.0.0-alpha02

2021 年 3 月 10 日

发布了 androidx.wear:wear-remote-interactions:1.0.0-alpha02版本 1.0.0-alpha02 中包含这些提交内容

新功能

  • 将 PlayStoreAvailability 类从穿戴式设备支持库迁移到 AndroidX 中,该类提供了用于检查手机上是否有 Play 商店的 API。

问题修复

  • 将 PlayStoreAvailability 类从穿戴式设备支持库迁移到 AndroidX 中。(I69bfe)

版本 1.0.0-alpha02

2021 年 2 月 10 日

发布了 androidx.wear:wear-ongoing:1.0.0-alpha02androidx.wear:wear-phone-interactions:1.0.0-alpha02版本 1.0.0-alpha02 中包含这些提交内容

API 变更

  • 添加了对更复杂的状态的支持。它们由一个(或多个)模板和一系列用于填充模板占位符的 Part 组成。OngoingActivityStatus 现在具有一种静态方法,用于创建仅具有一个部分(Text 或 Timer)的简单状态;以及一个用于创建更复杂的状态的 Builder。 (I1fe81)
  • 将 BridgingManager 和 BridgingConfig 类从 Wear 支持库移至 AndroidX,这提供了用于在运行时启用/停用通知的 API;还可以为免于进入桥接模式的通知设置标记。 (I3a17e)

版本 1.0.0-alpha01

2021 年 1 月 27 日

发布了 androidx.wear:wear-ongoing:1.0.0-alpha01androidx.wear:wear-phone-interactions:1.0.0-alpha01androidx.wear:wear-remote-interactions:1.0.0-alpha01版本 1.0.0-alpha01 中包含这些提交内容

API 变更

  • 将 Ongoing Activities 库迁移到新的子库:wear-ongoing。其中的类现在位于 androidx.wear.ongoing 软件包中(之前是位于 androidx.wear.ongoingactivities 中)(I7c029)

  • 创建新的支持库,其中包含支持从穿戴式设备到手机的交互的类。该库中最初填充了从穿戴式设备支持库迁移的类。(Id5180)

  • 将 PhoneDeviceType 类从穿戴式设备支持库迁移到 AndroidX。迁移的类已重命名为 PhoneTypeHelper,该类提供辅助方法来确定当前手表配对的手机类型,并仅在穿戴式设备上使用。(Ibd947)

  • 创建新的支持库,其中包含支持在穿戴式设备和手机之间进行交互的类。该库中最初填充了从穿戴式设备支持库迁移的类。(I9deb4)

  • 将 WatchFaceCompanion 类从穿戴式设备支持库迁移到 AndroidX。迁移的类已重命名为 WatchFaceConfigIntentHelper,该类提供辅助函数,用于在手机配套的表盘配置 Activity 中指定 ID 和组件名称;该类还可以在本地使用,以配置穿戴式设备上的表盘。(Ia455f)

Wear Complications 和 Watchface 1.0.0

版本 1.0.0-alpha10

2021 年 3 月 24 日

发布了 androidx.wear:wear-*:1.0.0-alpha10版本 1.0.0-alpha10 中包含这些提交内容

新功能

  • 现在可以在调用 WatchFaceService.createWatchFace 时创建开放式 gl 对象(例如纹理),因为 GlesRenderer 现在需要显式调用 initOpenGLContext(可在 createWatchFace 内完成)。

API 变更

  • IdAndComplicationData 不太好用,已从公共 API 中移除。使用该类的类和接口已进行重构。(I4c928)
  • 已将 ReferenceTime 替换为 CountUpTimeReferenceCountDownTimeReference 这两个看起来更一目了然的函数。(Ib66c6)
  • 添加了一些缺失的 @Px@ColorInt 注解。(I9bbc3)
  • Complication.complicationConfigExtras 现在不可为 null,默认为 Bundle.EMPTY。(Iad04f)
  • GlesRenderer 现在要求您在构建后调用 initOpenGLContext。此函数过去仅在内部使用,但现已在公共 API 上提供,以允许在 createWatchFace 内尽早调用 GL。(I726c2)
  • 移除了应该已不再需要的 Complication.setRenderer。(Ie992f)
  • Complicaiton.setComplicationBounds 已从公共 API 中移除。如果您需要调整某个复杂功能的位置,可以通过 ComplicationsUserStyleSetting 实现。(Ibd9e5)
  • ComplicationsManager.TapCallback.onComplicationSingleTapped 已重命名为 onComplicationTapped。(I3a55c)
  • ComplicationOutlineRenderer.drawComplicationSelectOutline 已重命名为 drawComplicationOutline。(I14b88)

版本 1.0.0-alpha09

2021 年 3 月 10 日

发布了 androidx.wear:wear-complications-*:1.0.0-alpha09androidx.wear:wear-watchface-*:1.0.0-alpha09版本 1.0.0-alpha09 中包含这些提交内容

新功能

  • WCS/SysUI 主机和表盘之间的接口已发生变化。现在,编辑器可以确定样式更改将启用还是停用复杂功能(启用表示为 initiallyEnabled 加上 ComplicationsUserStyleSetting 的任何替换状态)。此外,EditorService.closeEditor 还允许 SysUI 根据需要远程关闭表盘编辑器。
  • InteractiveWatchFaceWcsClient.setUserStyle 的基础上添加了一个更强大的命令 updateInstance,后者可以更改实例 ID、设置样式,还可一次性清除复杂功能。

API 变更

  • 已将 TraceEvent 添加到表盘库中。(I1a141)
  • ComplicationState 现在具有一个新属性 initiallyEnabled,该属性可用于预测切换样式的后果。(I8c905)
  • 我们已将 InteractiveWatchFaceWcsClient.setUserStyle 替换为一个更强大的命令 updateInstance,该命令可以更改实例 ID、设置样式,还可清除复杂功能。(Ife6f6)
  • WatchFaceClient 屏幕截图 API 不再压缩屏幕截图(因为处理速度太慢),而是把后处理工作留给调用方来完成。(Id35af)
  • 现在可以通过 EditorService.closeEditor 远程关闭表盘编辑器。(Ic5aa4)
  • 添加了可为 null 性注解 (Ic16ed)

版本 1.0.0-alpha08

2021 年 2 月 24 日

发布了 androidx.wear:wear-*:1.0.0-alpha08版本 1.0.0-alpha08 中包含这些提交内容

新功能

  • 有些表盘围绕一个或多个特定复杂功能进行设计,为支持此特性,我们添加了 Complication.Builder#setFixedComplicationProvider,若将其值设为 true,则可以阻止用户更改该槽中的复杂功能。
  • 表盘库优先采用 Kotlin 并使用协程(例如挂起函数)。对于 Java 用户,我们提供了 ListenableFuture 封装容器,以改进以下库中的互操作性:wear/wear-watchface-guava、wear/wear-watchface-client-guava 和 wear/wear-watchface-editor-guava。

API 变更

  • 我们移除了对点按两次复杂功能即可启动提供程序选择器的支持,该功能在表盘中并不常见,还会使 SysUI 的实现复杂化。(I3ef24)
  • 如果 Binder 意外关闭,ProviderInfoRetriever 方法可能会抛出 ServiceDisconnectedException。(Ib2cc4)
  • 从 Android 11 开始,对于何时可以运行 ProviderChooser 会有一些限制。此外,我们希望使用新的 wear-watchface-editor 构建编辑器,以便从公共 API 中移除 ComplicationHelperActivity。(Ib19c1)
  • 移除了 ComplicationText 静态方法以支持构建器。(Ibe399)
  • 我们针对各种表盘库挂起方法引入了 guava ListenableFuture 封装容器。(I16b2c)
  • 为了使 API 更加清晰,我们为 RenderParameters 添加了一个无需色调的辅助构造函数,以便与 LayerMode.DRAW_OUTLINED 以外的 LayerMode 配合使用。(I497ea)
  • 以前,ListUserStyleSetting 与其他构造函数不同,因为它具有默认参数。现在,所有 StyleSetting 子类构造函数均会优先采用默认值。(I9dbfd)
  • CanvasComplication 已重构为使用隐藏方法,从而更方便实现子类 (I5b321)
  • 我们重构了 EditorResult,以便使用新的 EditorService,并使用 EditorSession.broadcastState() 将更新流式传输到观测程序(通常为 SysUI)。(Ic4370)
  • 有些表盘围绕特定的复杂功能而构建,作为表盘的重要组成部分,其中提供程序是用户不可配置的。为了支持这一点,我们添加了 Complication.Builder#setFixedComplicationProvider。(I4509e)
  • EditorRequest 现在用于指定软件包名称而不是 ComponentName,因为 SysUI 不方便用它来查找编辑器的类名称,而且实际上我们只需要软件包名称。(Ib6814)

版本 1.0.0-alpha07

2021 年 2 月 10 日

发布了 androidx.wear:wear-*:1.0.0-alpha07版本 1.0.0-alpha07 中包含这些提交内容

新功能

  • WatchFaceService.createWatchFace 现在是一个挂起函数,这意味着表盘主题在等待 IO 时不再需要阻塞界面线程。wear-watchface-editor 和 wear-complications-data 也与之类似

API 变更

  • 移除了 PhotoImage 类并直接使用 Icon。(I8a70b)
  • 公开了 ComplicationData 的 validTimeRange。(I91366)
  • 进一步明确了图片类属性。(I81700)
  • wear-watchface-editor 和 wear-complications-data 已重构为使用挂起函数,而不是协程。Rx java 和未来的 compat 封装容器也会进行如此更改。(If3c5f)
  • 现在,如果 requestPreviewComplicationData 因连接问题或缺少 API 支持而无法返回预览数据,ProviderInfoRetriever 会抛出 PreviewNotAvailableException。(I4964d)
  • WatchFaceControlService::createWatchFaceControlClient 现在是一个挂起的函数,而 getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClient 现在称为 getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClientAsync 并会返回 Deferred<InteractiveWatchFaceWcsClient>。Rx java 和未来的 compat 封装容器也会如此。(I5d461)
  • 已将 CATEGORY_PROVIDER_CONFIG_ACTION 重命名为 CATEGORY_PROVIDER_CONFIG。(I7c068)
  • 请注意,createOnWatchEditingSession 现在是一个挂起的函数,因为有时,表盘主题在编辑器 Activity 启动后不久才能使用。(Ida9aa)
  • WatchFaceService.createWatchFace 现在是一个允许异步初始化的挂起函数,而之前,您必须得阻塞主线程。(If076a)
  • UserStyle 现在具有一个数组运算符,我们已将类型转换帮助程序添加到 UserStyle.Option 中。(I35036)
  • 我们修复了 UserStyle 有线格式会导致部分不稳定的隐藏 API 发生改变的编组错误。(I8be09)
  • 我们添加了 CustomValueUserStyleSetting,可让您在 UserStyle 中存储特定于应用的单个字符串。默认表盘主题编辑器会忽略此值。(Ic04d2)
  • 对于我们无法升级的 Android WearOS R 及更低版本,InstanceID 未在 Intent extra 中传递。为了解决这一问题,我们现在允许 InstancID 为 null。(Id8b78)
  • EditorRequest 现在包含编辑器 ComponentName,它设置为 WatchFaceEditorContract.createIntent 中的一个组件 (I3cd06)
  • 表盘主题 EditorResult 现在包含预览 ComplicationData,以允许调用方在修改表盘主题后对其进行屏幕截图。(I2c561)

问题修复

  • 向 UserStyle、UserStyleSetting 和 UserStyleSchema 添加了 toString() 替换项,使得这些类的处理变得更加简单。(I9f5ec)

版本 1.0.0-alpha06

2021 年 1 月 27 日

发布了 androidx.wear:wear-*:1.0.0-alpha06版本 1.0.0-alpha06 中包含这些提交内容

新功能

  • 我们推出了新库 wear/wear-watchface-editor,该库可供表盘开发者(或许还包括原始设备制造商 (OEM))用来构建样式和复杂功能编辑器。SysUI 会向表盘发送一个 Intent,该 Intent 会使用新的 EditorSession 类来获取 WatchFace 详细信息,并通过 Activity.setWatchRequestResult 记录结果。为了支持此功能,我们添加了 ProviderInfoRetriever.requestPreviewComplicationData,该类可使表盘编辑器能够请求预览 ComplicationData。预览 ComplicationData 的好处在于,它与实时数据不同,您不必担心在呈现编辑器时显示权限对话框(请注意,如果用户选择的提供程序带有权限,系统仍会提示他们授予权限)。

API 变更

  • ComplicationProviderInfo 现在包含提供程序的 ComponentName 字段。稍后,我们会向 WearOS 添加对该字段的支持,同时会将该字段设为 null。(Id8fc4)
  • 添加了 ProviderInfoRetriever.requestPreviewComplicationData,该类可使表盘编辑器能够请求预览 ComplicationData。这很实用,因为实时复杂功能可能需要权限,而您现在可以针对未处于活跃状态的复杂功能显示预览数据。(I2e1df)
  • ComplicationManager 现在是 WatchFace 构造函数的可选参数。为此,已对相应参数进行了重新排序。(I66c76)
  • 向复杂功能添加了一个可选的 Bundle。如果设置了该 Bundle,它会合并到发送来启动提供程序选择器 Activity 的 intent 中。(Ifd4ad)
  • 添加了一个新的 wear-watchface-editor 库,用于支持表盘和 SysUi 托管的编辑器。SysUI 将通过发送 intent 来启动这些编辑器。表盘 Activity 服务可以使用新的 EditorSession 类来获取 WatchFace 详细信息,并通过 Activity.setWatchRequestResult 记录结果。(I2110d)
  • LayerMode.DRAW_HIGHLIGHTED 现在称为 LayerMode.DRAW_OUTLINED,而 RenderParameters.highlightComplicationId 现在称为 RenderParameters.selectedComplicationId。RenderParameters.selectedComplicationId 除了绘制轮廓外,还会突出显示指定的复杂功能。(I90a40)
  • 以后,如果 WatchFaceControlClient.getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClient 服务在等待创建表盘主题时终止,可以通过 ServiceStartFailureException 进行解决。(I0f509)
  • EditorSession.complicationPreviewData 现在是 ListenableFuture,因为提取此数据是一个异步过程。(Iead9d)

问题修复

  • 我们即将从 complicationBounds 以及处于启用状态的 ComplicationOverlay 中移除未使用的字段。(I17b71)

版本 1.0.0-alpha05

2021 年 1 月 13 日

发布了 androidx.wear:wear-*:1.0.0-alpha05版本 1.0.0-alpha05 中包含这些提交内容。

新功能

表盘通常支持许多复杂功能配置,这些配置显示的复杂功能数量不等。为了简化其设置,我们现在通过对构建器调用 setEnabled(false) 来支持最初停用的复杂功能。日后可以通过 ComplicationsUserStyleSetting 启用这些复杂功能。

API 变更

  • ComplicationHelperActivity 现在接受 Collection<ComplicationType>,不再接受整数数组,这样更易于使用。(I1f13d)
  • ProviderInfoRetriever.retrieveProviderInfo 现在会正确返回 ListenableFuture<ProviderInfo[]>。(If2710)
  • 现在,您可以通过对构建器调用 setEnabled(false) 来创建最初停用的复杂功能。(Idaa53)
  • WatchFaceState 现在添加了一个仅适用于无头实例的 isHeadless 属性。(Ifa900)
  • ComplicationDrawable 现在选择性地支持同步加载可绘制对象。这个类由屏幕截图 API 使用。(I34d4a)

版本 1.0.0-alpha04

2020 年 12 月 16 日

发布了 androidx.wear:wear-*:1.0.0-alpha04版本 1.0.0-alpha04 中包含这些提交内容

新功能

  • 现在,Wear 表盘主题库支持按类型设置边界。例如,您可以切换为对 ComplicationType.LONG_TEXT 使用宽边界框,而对其他类型使用较细的边界框。

API 变更

  • 复杂功能现在使用 ComplicationBounds,该类封装了一个 Map<ComplicationType, RectF> 来支持按复杂功能类型定义尺寸。(I1ebe7)
  • 现在,您可以通过 RenderParameters 指定要在屏幕截图中使用的突出显示色调。(Iff42b)
  • 除了边界外,您现在必须使用 ComplicationsUserStyleSetting 修改复杂功能,这是为了确保操作系统保持同步。(I8dc5d)
  • Renderer 现在是一个密封的类。这意味着 CanvasRenderer 和 GlesRenderer 现在是 Renderer 的内部类。(Iab5d4b/173803230
  • CanvasComplicationDrawable.drawHighlight 已重命名为 drawOutline。ObservableWatchData 现在添加了几个缺少的 UiThread 注解。ScreenState 现已从 WatchState 中完全移除。(If1393)
  • 现在,wear-watchface 的最低 API 级别为 25。请注意,支持硬件画布需要 API 级别 26 或更高级别。(Ic9bbd)
  • InteractiveWatchFaceWcsClient 现在有一个 getComplicationIdAt 辅助程序。(I05811)
  • wear-watchface-client 的 API 级别已降至 25,不过屏幕截图 API 需要 API 级别 27。(Id31c2)

问题修复

  • 现在,我们在 ComplicationState 中提供复杂功能当前 ComplicationData 的 ComplicationType。(I9b390)
  • InteractiveWatchFaceWcs 现在有一个 `bringAttentionToComplication 方法,用于短暂突出显示指定的复杂功能。(I6d31c)
  • InteractiveWatchFaceWcsClient#setUserStyle 现在有一个接受 Map<string, string=""> 的重载,因此,构造 UserStyle 有可能不需要额外的 IPC 往返。(I24eec)</string,>

版本 1.0.0-alpha03

2020 年 12 月 2 日

发布了 androidx.wear:wear-*:1.0.0-alpha03版本 1.0.0-alpha03 中包含这些提交内容

新功能

Complication 类现在有一个 compicationData 属性,可以让表盘观察 ComplicationData 的更改。因此,可以根据复杂功能的类型更改复杂功能的尺寸。

现在,可以通过分配到 Renderer.interactiveDrawModeUpdateDelayMillis 来支持可变帧速率。因此,对于每秒运行一次简短动画的表盘,可以通过在没有动画时进入休眠状态来显著节省电量。

API 变更

  • BACKGROUND_IMAGE 已连同相关类一起重命名为 PHOTO_IMAGE。这种复杂功能并非专门用于背景,因此更改了名称。(I995c6)
  • DefaultComplicationProviderPolicy 现在已使用 IntDef 正确进行注解。(I3b431)
  • 隐藏的 TimeDependentText 类不再通过 ContentDescriptionLabel 提供,而是添加一个访问函数在指定时间获取文本。(Ica692)
  • ObservableWatchData 的构造函数现在是内部函数。(I30121b/173802666
  • Complication 现在具有可让表盘观察 ComplicationData 更改的 compicationData 属性。Complication 还新加了一个 isActiveAt 调用,可用于判断是否应在提供的日期时间呈现任何内容。(Ic0e2a)
  • SharedMemoryImage 已不在公共 API 中。(I7ee17)
  • WatchFace.overridePreviewReferenceTimeMillis 现在添加了一个 IntRange 注解,并且 getter 和 setter 具有一致的名称。(Ia5f78)
  • 为清楚起见,现在通过 Complication.createRoundRectComplicationBuilderComplication.createBackgroundComplicationBuilder 创建 Complication.Builder (I54063)
  • 添加了 WatchFace.TapListener,此接口可让 WatchFace 观察到复杂功能未使用的点按操作。(Ic2fe1b/172721168
  • WatchFace 现在通过分配到 Renderer.interactiveDrawModeUpdateDelayMillis 来支持可变帧速率。这有助于在没有动画时进入休眠状态,从而延长电池续航时间。(I707c9)
  • WatchFace.Builder 已不再需要,invalidate() 和 interactiveUpdateRateMillis 已移至 Renderer。(I329ea)
  • 为提高 Java 互操作性,针对 WatchState 中的布尔值属性重命名了 getter (I6d2f1)
  • 为保持一致,已将 TapListener 重命名为 TapCallback,将 InvalidateCallback 重命名为 InvalidateListener。(I9414e)
  • 为清楚起见,Wear 2.0 表盘样式选项已移至其自己的类中。WatchFace.Builder setter 现在具有对称的 WatchFace 类 getter。(Iefdfc)
  • 添加了 InteractiveWatchFaceWcsClient 和 WatchFaceControlClient.getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClient,用于获取现有实例,或者在连接壁纸服务并创建引擎后创建实例。(Id666e)
  • WatchFaceControlClient 现在是一个允许测试对其进行模拟的接口。(I875d9)
  • 为了更方便进行测试,HeadlessWatchFaceClient、InteractiveWatchFaceSysUiClientImpl 和 InteractiveWatchFaceWcsClient 现在是接口。(I7cdc3)
  • wear-watchface-complications-rendering 中的方法添加了注解 (I0d65c)

问题修复

  • 从复制 android.content.res.Configuration#isScreenRound() 的 DeviceConfig 中移除了屏幕形状 (Ifadf4)
  • WatchFaceControlClient.getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClient 改为接受 Map<String, String>,不再接受 UserStyle,因为在不知道架构的情况下很难创建 UserStyle,而架构只能在创建客户端后获取。(Iea02a)
  • 修复了 InteractiveWatchFaceWcsClient,以使用 ComplicationState 而非传输格式。(Icb8a4)
  • UserStyleSettings 现在是密封的类,因为表盘编辑器只能理解内置类。(I2d797)

版本 1.0.0-alpha02

2020 年 11 月 11 日

发布了 androidx.wear:wear-*:1.0.0-alpha02版本 1.0.0-alpha02 中包含这些提交内容

API 变更

  • ComplicationDetails 现在称为 ComplicationState 且已正确封装,同时穿戴式设备支持的用法 @ComplicationData.ComplicationType 已迁移至 androidx ComplicationType。(I4dd36)
  • 向 RenderParameters 添加了一个可选的 highlightedComplicationId 参数,以便您请求突出显示屏幕截图中的单个复杂功能。(I66ce9)
  • ComplicationProviderService 使用新样式的复杂功能 API 以实现一致性 (Id5aea)
  • getPreviewReferenceTimeMillis 现在从 DeviceConfig 获取参考时间。(I779fe)
  • 简化了 Renderer API Surface,可改为使用 SurfaceHolder.Callback 观察变更。(I210db)
  • CanvasComplicationRenderer 并非从 Renderer 扩展,为清楚起见,对其进行了重命名。(Ibe880)

问题修复

  • androidx.wear:wear-watchface-client 的初始版本 (I1e35e)
  • 为清楚起见,更改了 GlesTextureComplication#renderer 的名称 (Ib78f7)
  • 为清楚起见,已将 StyleCategory 重命名为 StyleSetting (I488c7)
  • 添加了 UserStyleSchema 以简化 API (If36f8)

版本 1.0.0-alpha01

2020 年 10 月 28 日

发布了 androidx.wear:wear-complications-*:1.0.0-alpha01androidx.wear:wear-watchface-*:1.0.0-alpha01版本 1.0.0-alpha01 中包含这些提交内容

API 变更

  • 移除了我们不希望在公共 API 中公开的某些内容。(I41669)
  • 创建了 androidx.wear:wear-complications-provider 库。(I77f1f)
  • 新增了 ComplicationsUserStyleCategory 类别,推荐用于配置复杂功能 (I96909)
  • 添加了 wear-complication-data API。(I7c268)
  • 返回布尔值的函数现在采用“is”名称前缀,而非“get”(If36ff)
  • API 的推荐做法是避免使用受保护的数据,因此我们重构了这个类,让其通过构造函数接收参数。(I61644)
  • 为清楚起见,重命名了 setBackgroundComplication。(I96fe3)
  • 为 ComplicationDrawable isHighlighted 及相关数据使用 Kotlin 属性 (I4dcc8)
  • 我们添加了 Complication#invalidate(),用于替代 ComplicationRenderer.InvalidateCallback (I4f4c6)
  • 这些 API 已在 WearableSupport 中弃用,并在此版本中移除。(Ib425c)
  • 重命名了一些 WatchFace 构建器方法,以强调它们 Wear 2.0 遗留产物的性质。(Idb775)
  • wear/wear-watchface 的第一个候选 Beta 版 API (Id3981)
  • 第一个受到跟踪的 API 版本。(Ie9fe6)
  • 正确隐藏 ComplicationDrawable.BorderStyle IntDef 并移至 ComplicationStyle,以实现一致性。(I27f7a)
  • 为 ComplicationStyle 方法添加了缺失的注释 (I838fd)
  • 此库没有公共 API Surface (I88e2b)
  • 所有样式的 Category Option 类现均已正确设置为“final”。(Ib8323)
  • 第一个受到跟踪的 API 版本。(I27c85)

问题修复

  • 更改了 ComplicationProviderService 以添加明确的 getComplicationPreviewData 方法。(I4905f)
  • 针对 androidx 启用了 MissingGetterMatchingBuilder 的 API lint 检查(I4bbeab/138602561
  • 重命名了 wear-complications-rendering。(Ifea02)
  • 样式类别显示名现为 CharSequence (I28990)
  • 将“Override”替换为“Overlay”,以符合当前主题与样式的命名惯例。(I4fde9)
  • 为清楚起见,重命名了 UserStyle#getOptions。(I695b6)

版本 1.2.0

版本 1.2.0-alpha07

2021 年 3 月 24 日

发布了 androidx.wear:wear:1.2.0-alpha07版本 1.2.0-alpha07 中包含这些提交内容

问题修复

  • 修复了因使用高度大于宽度的屏幕尺寸导致 WearArcLayout 内部存在非弯曲子项的错误。现在,这些非弯曲的子项在任何屏幕类型上都可以在圆弧内正确放置。

版本 1.2.0-alpha06

2021 年 1 月 27 日

发布了 androidx.wear:wear:1.2.0-alpha06版本 1.2.0-alpha06 中包含这些提交内容

API 变更

  • 将 Ongoing Activities 库迁移到新的子库:wear-ongoing。其中的类现在位于 androidx.wear.ongoing 软件包中(之前是位于 androidx.wear.ongoingactivities 中)(I7c029)
  • 将 WearableCalendarContract 类从穿戴式设备支持库迁移到 AndroidX。此 API 会提供通过 CalendarContract 获取的数据的子集,但会自动同步到穿戴式设备。(I6f2d7)

问题修复

  • 默认情况下,在可关闭的 FrameLayout 中停用返回按钮关闭功能,因为滑动关闭仍然是在穿戴式设备上返回全屏的主要方式 (Ic24e3)
  • 修复了在 WearArcLayout 中处理子项的可见性时存在的一些问题 (Icf912)

版本 1.2.0-alpha05

2021 年 1 月 13 日

发布了 androidx.wear:wear:1.2.0-alpha05版本 1.2.0-alpha05 中包含这些提交内容

问题修复

  • 为了更好地演示 AmbientModeSupport 类的一般用途,更新了此类的 javadoc 以提供示例代码段。

版本 1.2.0-alpha04

2020 年 12 月 16 日

发布了 androidx.wear:wear:1.2.0-alpha04版本 1.2.0-alpha04 中包含这些提交内容

API 变更

  • 在 AmbientModeSupport 类中添加了相关支持,允许在设备退出微光模式时指示可“自动恢复”Activity。此功能以前由在 WearableSupportLibrary 中已弃用的 WearableActivity 类提供。(I336ab)
  • OngoingActivity
    • 现在可在创建 OngoingActivity 时设置类别,例如 OngoingActivitiy.Builder.getCategory(String)
    • OngoingActivityData 现在具有表示 OngoingActivity 的构建时间的时间戳 OngoingActivityData.getTimestamp()
    • (I91cb4)
  • 添加了相关支持,允许通过更改布局参数来扩展 MarginLayoutParams(即 WearArcLayout.LayoutParams 可扩展 android.view.ViewGroup.MarginLayoutParams),从而对 WearArcLayout 的子项设置外边距。(I2cd88)
  • 将 WearCurvedTextView 的锚点类型默认值更改为 WearArcLayout.ANCHOR_CENTER(原为 WearArcLayout.ANCHOR_START)。这简化了弧线布局与曲线文本之间的协定,因为在默认情况下,曲线文本绘制时会在顶部 x 轴居中,而父弧线布局可以将其旋转到所需的位置。(I105ff)

版本 1.2.0-alpha03

2020 年 12 月 2 日

发布了 androidx.wear:wear:1.2.0-alpha03版本 1.2.0-alpha03 中包含这些提交内容

新功能

新增布局容器 DismissibleFrameLayout,旨在用于 Activity 内,负责处理返回按钮关闭和/或滑动关闭。至少必须添加一个监听器,以对关闭操作执行操作。监听器通常会从当前 Activity 中移除所属视图或 Fragment。提供了 setSwipeDismissible(boolean) 和 setBackButtonDismissible(boolean),用于直接控制这些功能。此新布局旨在替换现有的 SwipeDismissFrameLayout。

曲线微件现在可以处理触摸事件。WearArcLayout 内的正常微件将接收所有触摸事件,映射到其坐标空间。WearCurvedTextView(无论是否在 WearArcLayout 内)可以设置 onClick 和 onLongClick 处理程序。

Ongoing Activities 类现在是 VersionedParcelable,而不使用自定义的序列化/反序列化。现在需要静态图标和触摸 intent。

API 变更

  • WearCurvedTextView 的属性“sweepDegrees”已分成 minSweepDegrees 和 maxSweepDegrees,为此微件提供更灵活的布局。

版本 1.2.0-alpha02

2020 年 11 月 11 日

发布了 androidx.wear:wear:1.2.0-alpha02版本 1.2.0-alpha02 中包含这些提交内容

此版本首次添加了新的“Ongoing Activities API”。开发者可以使用此 API 指示一项长时间的活动(例如,健身运动或媒体播放)正在持续进行中。借助此 API,开发者可以提供周期性状态更新(例如,“跑步距离和时间”和“当前播放的曲目”),以显示在表盘上或应用启动器中。此功能的适用对象为日后启用“正在进行的活动”功能的设备。

API 变更

  • 新的 Ongoing Activities API,这在“不受支持的设备”上是一项空操作。(I69a31)

版本 1.2.0-alpha01

2020 年 10 月 28 日

发布了 androidx.wear:wear:1.2.0-alpha01版本 1.2.0-alpha01 中包含这些提交内容

新功能

  • 添加了 WearCurvedTextView 组件,以便沿着视图中可内切的最大圆圈的弧线轻松显示曲线文字。用法示例:
<androidx.wear.widget.WearCurvedTextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="example curved text"
        app:anchorAngleDegrees="180"
        app:anchorPosition="center"
        app:clockwise="false"
        style="@android:style/TextAppearance.Large"
/>

Android Wear 中的曲线文字示例

  • 添加了 WearArcLayout 容器,用于按顺时针或逆时针方向在圆弧上逐个布置其子元素。其子级可以是标准 Android 微件,也可以是实现其 ArcLayoutWidget 接口的“曲线”微件。用法示例:
<androidx.wear.widget.WearArcLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:anchorPosition="center">
      <ImageView
              android:layout_width="20dp"
              android:layout_height="20dp"
              android:src="@drawable/ic_launcher"
      />
      <androidx.wear.widget.WearCurvedTextView
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:text="Curved Text"
              style="@android:style/TextAppearance.Small"
              android:padding="2dp"
       />
  </androidx.wear.widget.WearArcLayout>

Android Wear 中的拱形文字示例

(I536da)

Wear-Input 1.1.0

版本 1.1.0-alpha01

2021 年 1 月 27 日

发布了 androidx.wear:wear-input:1.1.0-alpha01androidx.wear:wear-input-testing:1.1.0-alpha01版本 1.1.0-alpha01 中包含这些提交内容

API 变更

  • 将 RemoteInputIntent 类从穿戴式设备支持库迁移到 AndroidX。迁移的类已重命名为 RemoteInputIntentHelper,该类提供辅助函数,用于通过启动 intent 来支持遥控器输入。(I47cee)

Wear-Input 1.0.0

版本 1.0.0

2020 年 12 月 2 日

发布了 androidx.wear:wear-input:1.0.0androidx.wear:wear-input-testing:1.0.0版本 1.0.0 中包含这些提交内容

此版本与 1.0.0-rc01 完全相同。

1.0.0 的主要功能

  • WearableButtons 功能从穿戴式设备支持库迁移到 Jetpack。

  • 添加了 androidx.wear.input.test.TestWearableButtonsProvider,它实现了 androidx.wear.input.WearableButtonsProvider,以便协助测试使用 androidx.wear:wear-input 库开发的应用。

版本 1.0.0-rc01

2020 年 11 月 11 日

发布了 androidx.wear:wear-input:1.0.0-rc01androidx.wear:wear-input-testing:1.0.0-rc01版本 1.0.0-rc01 中包含这些提交内容

此版本与 1.0.0-beta01 完全相同。

版本 1.0.0-beta01

2020 年 10 月 28 日

发布了 androidx.wear:wear-input:1.0.0-beta01androidx.wear:wear-input-testing:1.0.0-beta01,这两个版本与 1.1.0-alpha01 相比没有变化。版本 1.0.0-beta01 中包含这些提交内容

Wear-Input-Testing 版本 1.0.0-alpha01

2020 年 10 月 14 日

发布了 androidx.wear:wear-input-testing:1.0.0-alpha01版本 1.0.0-alpha01 中包含这些提交内容

API 变更

  • 添加了 androidx.wear.input.test.TestWearableButtonsProvider,它实现了 androidx.wear.input.WearableButtonsProvider,以便协助测试使用 androidx.wear:wear-input 库开发的应用。(I0ed0c)

Wear-Input 版本 1.0.0-alpha01

2020 年 9 月 2 日

发布了 androidx.wear:wear-input:1.0.0-alpha01版本 1.0.0-alpha01 中包含这些提交内容

新功能

WearableButtons 功能从穿戴式设备支持库迁移到 Jetpack。在下一个 Jetpack 版本中,androidx.wear:wear-input-testing 库将提供更多测试支持。

版本 1.1.0

版本 1.1.0

2020 年 10 月 14 日

发布了 androidx.wear:wear:1.1.0版本 1.1.0 中包含这些提交内容

自 1.0.0 以来的重要变更

  • BoxInsetLayout 的 boxedEdges 属性添加了layout_前缀(现为layout_BoxedEdges)以便遵循 android 命名惯例。这将消除 Android Studio 中与这些属性有关的 linter 错误。(I4272f)
  • ConfirmationActivity 添加了可选的 EXTRA_ANIMATION_DURATION_MILLIS,让您可以控制确认对话框显示的时长。(adb83ceb/143356547
  • 更新了 WearableActionDrawView,让操作抽屉的膨胀时间延迟到抽屉栏首次打开的时侯。(I01026b/163870541

版本 1.1.0-rc03

2020 年 9 月 2 日

发布了 androidx.wear:wear:1.1.0-rc03版本 1.1.0-rc03 中包含这些提交内容。

问题修复

  • 解决了操作抽屉在打开时不显示内容的问题。(I01026b/163870541

版本 1.1.0-rc02

2020 年 6 月 24 日

发布了 androidx.wear:wear:1.1.0-rc02版本 1.1.0-rc02 中包含这些提交内容

问题修复

  • BoxInsetLayout 的 boxedEdges 属性添加了layout_前缀(现为layout_boxedEdges)以便遵循 android 命名惯例。这将消除 Android Studio 中与这些属性有关的 linter 错误。

版本 1.1.0-rc01

2020 年 5 月 14 日

发布了 androidx.wear:wear:1.1.0-rc01,该版本与 .1.0-beta01 相比没有变化。版本 1.1.0-rc01 中包含这些提交内容

版本 1.1.0-beta01

2020 年 4 月 29 日

发布了 androidx.wear:wear:1.1.0-beta01,该版本与 androidx.wear:wear:1.1.0-alpha01 相比没有变化。版本 1.3.0-beta01 中包含这些提交内容

版本 1.1.0-alpha01

2020 年 4 月 15 日

发布了 androidx.wear:wear:1.1.0-alpha01版本 1.1.0-alpha01 中包含这些提交内容

API 变更

  • ConfirmationActivity 添加了可选的 EXTRA_ANIMATION_DURATION_MILLIS,让您可以控制确认对话框显示的时长。(adb83ce134523cb/143356547

问题修复

  • 更新了 WearableActionDrawView,让操作抽屉的膨胀时间延迟到抽屉栏首次打开的时侯。(5cd32f7)