Wear
下表列出了 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 |
声明依赖项
如需添加 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-alpha01
、androidx.wear:wear-tiles-proto:1.0.0-alpha01
和 androidx.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-alpha03
和 androidx.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-alpha02
和 androidx.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-alpha01
、androidx.wear:wear-phone-interactions:1.0.0-alpha01
和 androidx.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
替换为CountUpTimeReference
和CountDownTimeReference
这两个看起来更一目了然的函数。(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-alpha09
和 androidx.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 的内部类。(Iab5d4、b/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 的构造函数现在是内部函数。(I30121、b/173802666)
- Complication 现在具有可让表盘观察 ComplicationData 更改的 compicationData 属性。Complication 还新加了一个 isActiveAt 调用,可用于判断是否应在提供的日期时间呈现任何内容。(Ic0e2a)
- 空
SharedMemoryImage
已不在公共 API 中。(I7ee17) WatchFace.overridePreviewReferenceTimeMillis
现在添加了一个 IntRange 注解,并且 getter 和 setter 具有一致的名称。(Ia5f78)- 为清楚起见,现在通过
Complication.createRoundRectComplicationBuilder
或Complication.createBackgroundComplicationBuilder
创建Complication.Builder
(I54063) - 添加了 WatchFace.TapListener,此接口可让 WatchFace 观察到复杂功能未使用的点按操作。(Ic2fe1、b/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
已迁移至 androidxComplicationType
。(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-alpha01
和 androidx.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 检查(I4bbea、b/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)
- 现在可在创建 OngoingActivity 时设置类别,例如
- 添加了相关支持,允许通过更改布局参数来扩展 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"
/>
- 添加了 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>
(I536da)
Wear-Input 1.1.0
版本 1.1.0-alpha01
2021 年 1 月 27 日
发布了 androidx.wear:wear-input:1.1.0-alpha01
和 androidx.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.0
和 androidx.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-rc01
和 androidx.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-beta01
和 androidx.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
,让您可以控制确认对话框显示的时长。(adb83ce、b/143356547) - 更新了
WearableActionDrawView
,让操作抽屉的膨胀时间延迟到抽屉栏首次打开的时侯。(I01026、b/163870541)
版本 1.1.0-rc03
2020 年 9 月 2 日
发布了 androidx.wear:wear:1.1.0-rc03
。版本 1.1.0-rc03 中包含这些提交内容。
问题修复
- 解决了操作抽屉在打开时不显示内容的问题。(I01026、b/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
,让您可以控制确认对话框显示的时长。(adb83ce、134523c、b/143356547)
问题修复
- 更新了
WearableActionDrawView
,让操作抽屉的膨胀时间延迟到抽屉栏首次打开的时侯。(5cd32f7)