Wear
androidx.wear.activity
androidx.wear.ambient
androidx.wear.input
androidx.wear.utils
androidx.wear.widget
androidx.wear.widget.drawer
(请参阅所有 Wear 软件包的参考文档)
此表格列出了 androidx.wear 组中的所有工件。
| 工件 | 稳定版 | 候选发布版 | Beta 发布版 | Alpha 发布版 |
|---|---|---|---|---|
| wear | 1.3.0 | - | - | 1.4.0-alpha01 |
| wear-input | 1.1.0 | - | - | 1.2.0-alpha02 |
| wear-input-testing | 1.1.0 | - | - | 1.2.0-alpha02 |
| wear-ongoing | 1.0.0 | - | - | 1.1.0-alpha01 |
| wear-phone-interactions | 1.1.0 | - | - | - |
| wear-remote-interactions | 1.1.0 | - | - | - |
声明依赖项
要添加 Wear 的依赖项,您必须将 Google Maven 代码库添加到您的项目中。请阅读Google 的 Maven 代码库以了解更多信息。
在应用的 build.gradle 文件或模块中添加所需工件的依赖项
Groovy
dependencies { implementation "androidx.wear:wear:1.3.0" // Add support for wearable specific inputs implementation "androidx.wear:wear-input:1.1.0" implementation "androidx.wear:wear-input-testing:1.1.0" // Use to implement wear ongoing activities implementation "androidx.wear:wear-ongoing:1.0.0" // Use to implement support for interactions from the Wearables to Phones implementation "androidx.wear:wear-phone-interactions:1.1.0" // Use to implement support for interactions between the Wearables and Phones implementation "androidx.wear:wear-remote-interactions:1.1.0" }
Kotlin
dependencies { implementation("androidx.wear:wear:1.3.0") // Add support for wearable specific inputs implementation("androidx.wear:wear-input:1.1.0") implementation("androidx.wear:wear-input-testing:1.1.0") // Use to implement wear ongoing activities implementation("androidx.wear:wear-ongoing:1.0.0") // Use to implement support for interactions from the Wearables to Phones implementation("androidx.wear:wear-phone-interactions:1.1.0") // Use to implement support for interactions between the Wearables and Phones implementation("androidx.wear:wear-remote-interactions:1.1.0") }
有关依赖项的更多信息,请参阅添加构建依赖项。
反馈
您的反馈有助于改进 Jetpack。如果您发现新问题或有改进此库的建议,请告诉我们。在创建新问题之前,请查看此库中的现有问题。您可以通过点击星形按钮为您已有的问题投票。
有关更多信息,请参阅问题跟踪器文档。
Wear Core 版本 1.0
版本 1.0.0-alpha01
2024 年 5 月 29 日
androidx.wear:wear-core:1.0.0-alpha01 已发布。版本 1.0.0-alpha01 包含这些提交。
API 变更
- 添加了一个新类
WearApiVersionhelper,用于辅助 Wear 上的运行时 API 兼容性检查。客户端可以使用此静态辅助类和提供的方法 (#isApiVersionAtLeast(VERSION)) 来检查兼容性。
Wear 工具预览版本 1.0
版本 1.0.0
2023 年 11 月 29 日
androidx.wear:wear-tooling-preview:1.0.0 已发布。版本 1.0.0 包含这些提交。
1.0.0 中的功能
- 添加
WearDevices以列出可用于界面预览的有效 Wear 设备。
版本 1.0.0-rc01
2023 年 11 月 15 日
androidx.wear:wear-tooling-preview:1.0.0-rc01 已发布,无任何更改。版本 1.0.0-rc01 包含这些提交。
版本 1.0.0-beta01
2023 年 10 月 18 日
androidx.wear:wear-tooling-preview:1.0.0-beta01 已发布,无任何更改。版本 1.0.0-beta01 包含这些提交。
版本 1.0.0-alpha01
2023 年 8 月 23 日
androidx.wear:wear-tooling-preview:1.0.0-alpha01 已发布。版本 1.0.0-alpha01 包含这些提交。
API 变更
- 添加
WearDevices以列出可用于界面预览的有效 Wear 设备 (Ib036e)
Wear 版本 1.4
版本 1.4.0-alpha01
2023 年 11 月 15 日
androidx.wear:wear:1.4.0-alpha01 已发布。版本 1.4.0-alpha01 包含这些提交。
Bug 修复
- 当没有消息时,将
ConfirmationOverlay图标垂直居中。( I496d8)
Wear 版本 1.3
版本 1.3.0
2023 年 8 月 9 日
androidx.wear:wear:1.3.0 已发布,自 1.3.0-rc01 以来没有变化。版本 1.3.0 包含这些提交。
自 1.2.0 以来的重要变更
- 将
AmbientModeSupport迁移到使用LifecycleObserver。弃用AmbientModeSupport,改用新的生命周期感知类。 - 更新
ConfirmationOverlay,采用新的图标/布局、字体和字体指标 SwipeDismissTransitionHelper更新为使用背景可绘制对象而不是第二个View,以纠正使用FragmentContainerView时的错误SwipeDismissFrameLayout动画更新为与 Wear 平台和 Wear Compose 实现保持一致。SwipeDismissFrameLayout错误修复,避免通过垂直滑动意外关闭 fragmentArcLayout现在支持扩展权重,其操作方式类似于常规布局权重。- 在
ArcLayout上支持layoutDirection
版本 1.3.0-rc01
2023 年 6 月 21 日
androidx.wear:wear:1.3.0-rc01 已发布,自 1.3.0-beta01 以来没有变化。版本 1.3.0-rc01 包含这些提交。
版本 1.3.0-beta01
2023 年 6 月 7 日
androidx.wear:wear:1.3.0-beta01 已发布。版本 1.3.0-beta01 包含这些提交。
API 变更
- 根据反馈更新了
AmbientLifecycleObserver。AmbientLifecycleObserverInterface已重命名为AmbientLifecycleObserver,通过调用AmbientLifecycleObserver(...)即可获取实例。isAmbient已从方法移至字段。( I84b4f)
Bug 修复
- 添加空值检查以处理在
SwipeToDismiss中重置 alpha 和平移时父视图为空的情况。( Ib0ec7)
版本 1.3.0-alpha05
2023 年 4 月 19 日
androidx.wear:wear:1.3.0-alpha05 已发布。版本 1.3.0-alpha05 包含这些提交。
API 变更
- 将
AmbientModeSupport迁移到使用LifecycleObserver。弃用AmbientModeSupport,改用新的生命周期感知类。( I1593b)
Bug 修复
- 更新
SwipeDismissTransitionHelper背景幕布方法,使用可绘制对象而不是添加视图,以修复使用FragmentContainerView时的错误。( I851cd)
版本 1.3.0-alpha04
2023 年 1 月 25 日
androidx.wear:wear:1.3.0-alpha04 已发布。版本 1.3.0-alpha04 包含这些提交。
Bug 修复
- 我们更新了
SwipeDismissFrameLayout中的动画,使其与 Wear 平台和 Wear Compose 实现保持一致。( I7261b)
版本 1.3.0-alpha03
2022 年 8 月 24 日
androidx.wear:wear:1.3.0-alpha03 已发布。版本 1.3.0-alpha03 包含这些提交。
新功能
ArcLayout现在支持扩展权重,其操作方式类似于常规布局权重。这意味着您可以指定子元素的相对大小,而无需直接计算它们的角度。我们还添加了最佳努力的MaxAngleDegrees,在扩展带有权重的子元素时会遵守此值。例如,您可以将具有多个带有权重的子元素的弧线限制为 90 度,这也将遵守任何未扩展元素所占用的空间。
API 变更
- 我们在
ArcLayout.LayoutParams中添加了权重,允许微件扩展以填充可用空间;如果存在多个微件,则它们在可用空间中的份额与其权重成比例。此外,我们还添加了ArcLayout.setMaxAngleDegrees,以便您可以例如将扩展限制在 90 度(注意这不影响任何固定大小子微件的布局)。最后,ArcLayout.Widget现在具有setSweepAngleDegrees,允许ArcLayout将其大小告知具有非零权重的微件。( I75f24) - 更新
setColorFilter的可空性 (I99ddf, b/236498063)
版本 1.3.0-alpha02
2022 年 2 月 23 日
androidx.wear:wear:1.3.0-alpha02 已发布。版本 1.3.0-alpha02 包含这些提交。
新功能
- 在
ArcLayout上支持layoutDirection(I14d49) - 改进了 ConfirmationOverlay 的内容描述消息 (I0fdf8)
- 更新
ConfirmationOverlay,采用新的图标/布局。( If5b54)
Bug 修复
- 添加了 ProGuard 规则以确保保留与环境相关的代码 (Idaa10)
- 避免在 SwipeDismissFrameLayout 中意外地通过垂直滑动关闭片段 (Idb6d8)
- 修复 ConfirmationOverlay 在没有消息时的问题 (I63e6f)
外部贡献
- Dae Gyu LEE (Samsung) - 避免在 SwipeDismissFrameLayout 中意外地通过垂直滑动关闭片段 (Idb6d8)
版本 1.3.0-alpha01
2021 年 9 月 29 日
androidx.wear:wear:1.3.0-alpha01 已发布。版本 1.3.0-alpha01 包含这些提交。
Bug 修复
ConfirmationOverlay现在将图标向上推,以适应更长的消息,同时消息不会进入设备边框(或屏幕外)。(I54bff)
Wear Ongoing & Interactions 版本 1.1.0
版本 1.1.0
2025 年 2 月 26 日
androidx.wear:wear-phone-interactions:1.1.0 已发布。版本 1.1.0 包含这些提交。
自 1.0.0 以来的重要变更
- 此版本包含对在 Wear OS 5 (API level 34) 或更高版本上运行且 targeting API level 35 或更高版本的应用程序的关键错误修复。
- 应用应在此版本库更新其
targetSdkVersion到 35 或更高之前更新到此版本库。 - 否则,将抛出运行时异常。
- 添加了配对设备类型的新定义 -
none,表示设备未与手机配对。
版本 1.1.0-rc01
2025 年 2 月 12 日
androidx.wear:wear-phone-interactions:1.1.0-rc01 已发布,自上次 beta 版以来无显著变化。版本 1.1.0-rc01 包含这些提交。
版本 1.1.0-beta01
2025 年 1 月 29 日
androidx.wear:wear-phone-interactions:1.1.0-beta01 已发布。版本 1.1.0-beta01 包含这些提交。
新功能
Wear Phone Interactions 1.1.0-beta01 版本表明该库的功能已完成,API 已锁定(除非标记为实验性)。Wear Phone Interactions 1.1 包含以下新功能和 API
- 将属性
redirectUrl添加到OAuthRequest。 - 文档修复
- 在
PhoneTypeHelper中增加了额外的类型,以指定设备未与手机配对的情况,而不是使用现有的未知类型。
API 变更
- 添加了配对设备类型的新定义 - none,表示设备未与手机配对。( I06cb8)
版本 1.1.0-alpha05
2024 年 12 月 11 日
androidx.wear:wear-phone-interactions:1.1.0-alpha05 已发布。版本 1.1.0-alpha05 包含这些提交。
Bug 修复
- 修复了在 Wear OS 5 (API level 34) 或更高版本上运行且 targeting API level 35 或更高版本时发生的崩溃 bug。应用应在此版本库更新其
targetSdkVersion到 35 或更高之前更新到此版本库。
版本 1.1.0
2024 年 12 月 11 日
androidx.wear:wear-remote-interactions:1.1.0 已发布。版本 1.1.0 包含这些提交。
自 1.0.0 以来的重要变更
- 我们添加了
RemoteActivityHelper.isRemoteActivityHelperAvailable,它有助于检查启动远程活动的功能是否可用。( I107a9)
版本 1.1.0-rc01
2024 年 10 月 16 日
androidx.wear:wear-remote-interactions:1.1.0-rc01 已发布,自 1.1.0-beta01 以来没有变化。版本 1.1.0-rc01 包含这些提交。
版本 1.1.0-beta01
2024 年 7 月 24 日
androidx.wear:wear-remote-interactions:1.1.0-beta01 已发布。版本 1.1.0-beta01 包含这些提交。Wear Remote Interactions 的 1.3.0-beta01 版本表明该库的功能已完成,API 已锁定(除非标记为实验性)。
版本 1.1.0-alpha04
2024 年 1 月 10 日
androidx.wear:wear-phone-interactions:1.1.0-alpha04 已发布。版本 1.1.0-alpha04 包含这些提交。
API 变更
- 我们添加了
RemoteAuthClient.isRemoteAuthAvailable,用于检查远程身份验证是否可用。( Ibc10c)
版本 1.1.0-alpha02
2024 年 1 月 10 日
androidx.wear:wear-remote-interactions:1.1.0-alpha02 已发布。版本 1.1.0-alpha02 包含这些提交。
API 变更
- 我们添加了
RemoteActivityHelper.isRemoteActivityHelperAvailable,它有助于检查启动远程活动的功能是否可用。( I107a9) - 我们已更新
RemoteActivityHelper的构造函数,使其在 Java 中兼容可选参数。( I75554)
版本 1.1.0-alpha01
2023 年 6 月 21 日
androidx.wear:wear-remote-interactions:1.1.0-alpha01 已发布。版本 1.1.0-alpha01 包含这些提交。
Bug 修复
- 改进了
RemoteActivityHelper中完成和错误处理的方式。( I60d60)
外部贡献
- 从
wear-remote-interactions中移除 Guava 依赖项,并使用更小的替代方案。
Wear-Phone-Interactions 版本 1.1.0-alpha03
2022 年 3 月 9 日
androidx.wear:wear-phone-interactions:1.1.0-alpha03 已发布。版本 1.1.0-alpha03 包含这些提交。
Bug 修复
- 如果给定请求 URL 中未设置重定向 URL,则
OAuthRequest中的redirectUrl现在返回空字符串。( I44242)
Wear-Phone-Interactions 版本 1.1.0-alpha02
2021 年 12 月 15 日
androidx.wear:wear-phone-interactions:1.1.0-alpha02 已发布。版本 1.1.0-alpha02 包含这些提交。
Bug 修复
- 修复了
RemoteAuthClient文档中的错误,包括代码示例片段中的错误和指向ErrorCode的死链接。( I260e8)
Wear-Phone-Interactions 版本 1.1.0-alpha01
2021 年 9 月 15 日
androidx.wear:wear-phone-interactions:1.1.0-alpha01 已发布。版本 1.1.0-alpha01 包含这些提交。
API 变更
Wear Ongoing & Interactions 版本 1.0.0
Wear-Phone-Interactions 版本 1.0.1
2021 年 12 月 15 日
androidx.wear:wear-phone-interactions:1.0.1 已发布。版本 1.0.1 包含这些提交。
Bug 修复
- 修复了尝试禁用桥接通知时,
BridgingManager抛出的异常,且没有excludedTags。
Wear-Phone-Interactions Wear-Remote-Interactions 版本 1.0.0
2021 年 9 月 15 日
androidx.wear:wear-phone-interactions:1.0.0 和 androidx.wear:wear-remote-interactions:1.0.0 已发布。版本 1.0.0 包含这些提交。
1.0.0 的主要功能
手机交互库包含从可穿戴设备到手机的交互 API。它包含以下内容
PhoneDeviceType,提供辅助方法,用于确定当前手表配对的手机类型,仅适用于可穿戴设备。BridgingManager、BridgingManagerService和BridgingConfigAPI,用于在运行时启用/禁用通知,并可选地设置免于桥接模式的通知标签。RemoteAuthClient,提供对可穿戴设备上远程身份验证的支持,以及添加 OAuth PKCE 扩展的支持。提供了额外的处理程序和通信辅助类。
远程交互库包含可穿戴设备和手机之间的交互 API。它包含以下内容
WatchFaceConfigIntentHelper,提供辅助函数,用于在手机上的伴侣应用中指定表盘配置活动的 ID 和组件名称。RemoteActivityHelper类,可用于在其他设备(即从手表到手机)上打开 intent。
Wear-Phone-Interactions Wear-Remote-Interactions 版本 1.0.0-rc01
2021 年 9 月 1 日
androidx.wear:wear-phone-interactions:1.0.0-rc01 和 androidx.wear:wear-remote-interactions:1.0.0-rc01 已发布。版本 1.0.0-rc01 包含这些提交。
Bug 修复
- 修复了使用 RemoteActivityHelper 时,阻止 Google Play 服务内部错误传播到调用者的 bug (I60d60)
- 修复了当没有连接节点或找不到请求的 nodeId 时,RemoteActivityHelper 永远不会实现其 Future 的 bug (I60d60)
Wear-Ongoing 版本 1.1
版本 1.1.0-alpha01
2023 年 8 月 23 日
androidx.wear:wear-ongoing:1.1.0-alpha01 已发布。版本 1.1.0-alpha01 包含这些提交。
API 变更
- 为进行中的活动添加了内容描述字段。辅助功能服务将使用此字段描述进行中的活动。( I79fc6)
Bug 修复
- 将
@RequiresPermission添加到要求授予 SDK 33 及更高版本上POST_NOTIFICATIONS权限的 API。( Ie542e, b/238790278)
Wear-Ongoing 版本 1.0.0
2021 年 9 月 1 日
androidx.wear:wear-ongoing:1.0.0 已发布。版本 1.0.0 包含这些提交。
1.0.0 的主要功能
- Wear 进行中活动 API 是一个面向开发人员(包括第三方开发人员)的 API,用于将其活动标记为“进行中活动”,并提供所需信息。
- 进行中活动指的是在手表后台运行的活动(例如,锻炼、通话和媒体)。在 Wear 3 上,被声明为进行中的活动将通过表盘上的专用叠加图标和应用启动器中的不同渲染而更加突出。
- 有关更多信息,请参阅Wear 进行中活动指南
Wear-Phone-Interactions Wear-Remote-Interactions 版本 1.0.0-beta01
2021 年 8 月 18 日
androidx.wear:wear-phone-interactions:1.0.0-beta01 和 androidx.wear:wear-remote-interactions:1.0.0-beta01 已发布。版本 1.0.0-beta01 包含这些提交。
API 变更
- 将类
RemoteIntentHelper重命名为RemoteActivityHelper。将函数RemoteIntentHelper#getRemoteIntentExtraIntent和RemoteIntentHelper#getRemoteIntentNodeId分别重命名为RemoteActivityHelper#getTargetIntent和RemoteActivityHelper#getTargetNodeId。( Id2042)
Wear-Ongoing 版本 1.0.0-rc01
2021 年 8 月 18 日
androidx.wear:wear-ongoing:1.0.0-rc01 已发布,自 1.0.0-beta01 以来没有变化。版本 1.0.0-rc01 包含这些提交。
Wear-Ongoing 版本 1.0.0-beta01
2021 年 8 月 4 日
androidx.wear:wear-ongoing:1.0.0-beta01 已发布。版本 1.0.0-beta01 包含这些提交。
API 变更
- OngoingActivity.Builder 上的一些 setter 现在接受 null 参数,以使 setter 和 getter 对称和一致 (I17ee5)
Wear-Phone-Interactions 版本 1.0.0-alpha07
2021 年 8 月 4 日
androidx.wear:wear-phone-interactions:1.0.0-alpha07 已发布。版本 1.0.0-alpha07 包含这些提交。
API 变更
- 将
WearTypeHelper.isChinaDevice重命名为WearTypeHelper.isChinaBuild。( I47302) - 我们已更新 RemoteAuthClient 库,使其根据设备类型(世界其他地区/中国)自动选择 redirect_uri。( I38866)
- 修复了导致 BridgingConfig 与 Bundle 相互转换失败并出现 ClassCastException 的 bug。添加了 BridgingManagerService 类的单元测试。( I68ecb)
Wear-Remote-Interactions 版本 1.0.0-alpha06
2021 年 8 月 4 日
androidx.wear:wear-remote-interactions:1.0.0-alpha06 已发布。版本 1.0.0-alpha06 包含这些提交。
Wear-Phone-Interactions 版本 1.0.0-alpha06
2021 年 7 月 21 日
androidx.wear:wear-phone-interactions:1.0.0-alpha06 已发布。版本 1.0.0-alpha06 包含这些提交。
API 变更
BridgingManagerSeviceBinder类现在是 Service 的子类,并已重命名为 BridgingManagerSevice。( I9fca2)- 方法
RemoteAuthClient.Callback.onAuthorizationError已更改为包含 OAuthRequest 参数。需要回调的方法现在也需要一个执行器来运行回调。( I35e11)
Bug 修复
- 我们通过更多的文档参数和尽可能使用属性,使身份验证 API 更清晰。( I12287)
Wear-Phone-Interactions 版本 1.0.0-alpha05
2021 年 6 月 30 日
androidx.wear:wear-phone-interactions:1.0.0-alpha05 已发布。版本 1.0.0-alpha05 包含这些提交。
Bug 修复
- 记录了应在
BridgingConfig.Builder构造函数中传递的参数。
Wear-Ongoing 版本 1.0.0-alpha06
2021 年 6 月 2 日
androidx.wear:wear-ongoing:1.0.0-alpha06 已发布。版本 1.0.0-alpha06 包含这些提交。
API 变更
- 为进行中的活动添加标题字段。( I7a405)
Bug 修复
Wear-Ongoing 版本 1.0.0-alpha05
2021 年 5 月 18 日
androidx.wear:wear-ongoing:1.0.0-alpha05 已发布。版本 1.0.0-alpha05 包含这些提交。
API 变更
OngoingActivity现在具有 getter 方法,可以直接检索通过 Builder 设置的所有值(或从相关通知中获取的默认值)。(Id8ac8)- 新类
Status现在用于创建OngoingActivity的状态 OngoingActivityData和OngoingActivityStatus不再是公共 API 的一部分。
- 新类
类
TextStatusPart和TimerStatusPart不再是公共 API 的一部分。( I57fb6)- 要创建具有静态文本的
Part,请使用Status.TextPart。 - 要创建具有秒表(向上计数)的
Part,请使用Status.Stopwatch - 要创建具有计时器(向下计数)的
Part,请使用Status.Timer
- 要创建具有静态文本的
Wear-Ongoing 版本 1.0.0-alpha04
2021 年 5 月 5 日
androidx.wear:wear-ongoing:1.0.0-alpha04 已发布。版本 1.0.0-alpha04 包含这些提交。
API 变更
- 在 OngoingActivity 中,fromExistingOngoingActivity 方法现在更名为 recoverOngoingActivity。
- OngoingActivity 现在具有一套完整的 getter,与以前仅在 OngoingActivityData 中可用的相同。( I0ee4d)
Wear-Remote-Interactions 版本 1.0.0-alpha05
2021 年 7 月 21 日
androidx.wear:wear-remote-interactions:1.0.0-alpha05 已发布。版本 1.0.0-alpha05 包含这些提交。
API 变更
我们添加了
RemoteIntentHelper类(以前是 Wearable 支持库中的 RemoteIntent),该类可用于在其他设备(即从手表到手机)上打开 intent。( I1d7e0)PlayStoreAvailability 类已从 AndroidX 库中移除。要检测 Play 商店是否在连接的手机上可用,请使用
androidx.phone.interactions.PhoneTypeHelper.getPhoneDeviceType方法来确定连接的手机是否是 Android 手机。然后使用androidx.wear.utils.WearTypeHelper.isChinaDevice方法来确定连接的手机是否是中国设备。如果手机是 Android 手机并且不是中国设备,则 Play 商店将可用。( Ie7dec)
Wear-Phone-Interactions 版本 1.0.0-alpha04
2021 年 4 月 7 日
androidx.wear:wear-phone-interactions:1.0.0-alpha04 已发布。版本 1.0.0-alpha04 包含这些提交。
API 变更
- 更新了
ErrorCode常量,使新库与 Wearable 支持库中的实现向后兼容。
Bug 修复
- 修复了新 OAuth API 在启动 OAuth 会话时导致的异常。
Wear-Remote-Interactions 版本 1.0.0-alpha03
2021 年 4 月 7 日
androidx.wear:wear-remote-interactions:1.0.0-alpha03 已发布。版本 1.0.0-alpha03 包含这些提交。
API 变更
- 将
PlayStoreAvailability更改为包含带有静态方法的伴生对象的类。用法保持不变。
Bug 修复
- 修复了
WatchFaceConfigIntentHelper的摘要文档,使其正确显示带有实际 HTML 字符的示例代码。
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 从 Wearable 支持库迁移到 AndroidX。此迁移后的类已重命名为 RemoteAuthClient,它提供对可穿戴设备上远程身份验证的支持,以及添加 OAuth PKCE 扩展的支持。提供了额外的处理程序和通信辅助类。
- 现在可以使用新的 OngoingActivity.Builder 构造函数,将正在进行的活动与具有标签的通知关联起来。
API 变更
Wear-Remote-Interactions 版本 1.0.0-alpha02
2021 年 3 月 10 日
androidx.wear:wear-remote-interactions:1.0.0-alpha02 已发布。版本 1.0.0-alpha02 包含这些提交。
新功能
- 将 PlayStoreAvailability 类从 Wearable 支持库迁移到 AndroidX,该库提供了一个 API,用于检查 Play 商店是否在手机上可用。
Bug 修复
- 将 PlayStoreAvailability 类从 Wearable 支持库迁移到 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 组成,这些 Part 将用于填充模板的占位符。OngoingActivityStatus 现在有一个静态方法来创建只有一部分(文本或计时器)的简单状态,以及一个 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 变更
将进行中的活动库迁移到一个新的子库:wear-ongoing。类现在位于 androidx.wear.ongoing 软件包中(以前是 androidx.wear.ongoingactivities)(I7c029)
创建一个新的支持库,其中包含支持可穿戴设备与手机之间交互的类。它最初填充了从 Wearable 支持库迁移的类。( Id5180)
将 PhoneDeviceType 类从 Wearable 支持库迁移到 AndroidX。迁移后的类重命名为 PhoneTypeHelper,它提供辅助方法,用于确定当前手表配对的手机类型,仅供可穿戴设备使用。( Ibd947)
创建一个新的支持库,其中包含支持可穿戴设备和手机之间交互的类。它最初填充了从 Wearable 支持库迁移的类。( I9deb4)
将 WatchFaceCompanion 类从 Wearable 支持库迁移到 AndroidX。迁移后的类重命名为 WatchFaceConfigIntentHelper,它提供了辅助函数,用于在手机上的伴侣应用中指定表盘配置活动的 ID 和组件名称,它也可以在本地用于配置可穿戴设备上的表盘。( Ia455f)
Wear Complications 和 Watchface 1.0.0
版本 1.0.0-alpha22
2021 年 9 月 15 日
androidx.wear:wear-*:1.0.0-alpha22 已发布。版本 1.0.0-alpha22 包含这些提交。
新功能
- EditorSession 现在订阅生命周期观察器,因此您的活动退出时不再需要显式关闭它。
API 变更
- EditorSession 和 ListenableEditorSession 现在将 Kotlin StateFlows 用于 complicationSlotsState、ComplicationsPreviewData 和 ComplicationsDataSourceInfo。( I761d9)
- EditorSession#userStyle 现在是一个
MutableStateFlow<UserStyle>(I32ca9) - EditorSession.createOnWatchEditorSession 现在使用生命周期观察器,当观察到 onDestroy 时会自动关闭。此外,
createOnWatchEditorSession现在只需传入活动即可。类似的更改也已应用于 ListenableEditorSession。( Ic6b7f) - CustomValueUserStyleSetting 的构造函数已作为公共 API 的一部分恢复。( I2e69a)
UserStyle现在继承自Map<UserStyleSetting, UserStyleSetting.Option>,MutableUserStyleSetting#put如果设置不在 schema 中或选项与设置不匹配,则会抛出 IllegalArgumentException。( Iba40f)
版本 1.0.0-alpha21
2021 年 9 月 1 日
androidx.wear:wear-*:1.0.0-alpha21 已发布。版本 1.0.0-alpha21 包含这些提交。
API 变更
- 所有公共表盘、客户端、编辑器和复杂功能 API 现在都使用 java.time.Instant 而不是 Long 来表示时间,因此最低 API 级别已提高到 26。( I3cd48)
- 表盘和复杂功能 API 现在使用不可变的 ZonedDateTime 而不是 Calendar。( I25cf8)
- ComplicationSlots 现在使用 NoDataComplicationData 初始化,ComplicationSlot.complicationData 现在始终有一个值,并且 CanvasComplicationDrawable.complicationData 不再可为空。( I4dfd6) 这减少(但没有消除)切换表盘时复杂功能的闪烁。
版本 1.0.0-alpha20
2021 年 8 月 18 日
androidx.wear:wear-*:1.0.0-alpha20 已发布。版本 1.0.0-alpha20 包含这些提交。
API 变更
- 我们已将 createFallbackPreviewData 添加到 ComplicationDataSourceInfo,可在 ComplicationDataSourceInfoRetriever.retrievePreviewComplicationData 返回 null 时使用。( I38c4d)
- ComplicationDataSourceUpdateRequester 已转换为接口,允许在单元测试中进行模拟。您可以使用 ComplicationDataSourceUpdateRequester.create() 构造一个具体的 ComplicationDataSourceUpdateRequester。( I7da22)
- RenderParameters.pressedComplicationSlotIds 已被 RenderParameters.lastComplicationTapDownEvents 取代,后者公开了新的 TapEvent 类,其中包含点击的 x、y 坐标(像素)和时间戳。
WatchFace.TapListener.onTap已被onTapEvent(@TapType tapType: Int, tapEvent: TapEvent)取代。此外,InteractiveWatchFaceClient.displayPressedAnimation已被移除。( Id87d2) - 为 setImportantForAccessibility 添加了显式线程注释 (I990fa)
- ComplicationSlotBoundsType 已移至 wear/wear-watchface 中的 androidx-wear-watchface.ComplicationSlotBoundsType。( I09420)
- 我们添加了对将字符串资源 ID 传入 UserStyleSetting 和 Options 的支持。现在,这是构造这些对象的推荐方式。( I03d5f)
- 已对 UserStyle Schema 的最大线大小施加限制。此外,Schema 中的图标不得大于 400x400 像素。( I3b65b)
- 我们添加了 MutableUserStyle 类以支持 UserStyle 实例的更改 (I95a40)
- 我们已将
ListenableWatchFaceMetadataClient.Companion#listenableCreateWatchFaceMetadataClient重命名为ListenableWatchFaceMetadataClient.Companion#createListenableWatchFaceMetadataClient。( I64ce2) - 我们修改了 EditorState.previewComplicationsData,使其仅包含已启用的复杂功能的数据,并且我们添加了
EditorSession.DEFAULT_PREVIEW_TIME_MILLIS,如果将其传递给renderWatchFaceToBitmap或PreviewScreenshotParams,则会请求以表盘的默认预览时间进行渲染。( If7b3c) - 我们已从公共 API 中移除了接受 CharSequence 的 UserStyleSetting 构造函数。建议改用需要 StringResource ID 的构造函数。( I8537b)
CurrentUserStyleRepository.UserStyleChangeListener现在支持 SAM 转换。( I85989)
版本 1.0.0-alpha19
2021 年 8 月 4 日
androidx.wear:wear-*:1.0.0-alpha19 已发布。版本 1.0.0-alpha19 包含这些提交。
API 变更
- 我们添加了
ListenableWatchFaceMetadataClient.listenableCreateWatchFaceMetadataClient,它为WatchFaceMetadataClient.createWatchFaceMetadataClient提供了一个ListenableFuture封装器。( I5fa37) UserStyleOption.getOptionForId现在接受UserStyleOption.Id而不是字节数组。( I469be)- 提供常量
BooleanOption.TRUE和BooleanOption.FALSE并禁止实例创建 (I46e09) - wear-watchface-client 中可能抛出 RemoteException 的方法现在已进行相应注解。( Ib8438)
- 为保持一致性,我们将
EditorSession.createOnWatchEditingSession重命名为createOnWatchEditorSession,类似地,createHeadlessEditingSession现在是createHeadlessEditorSession。它们的 guava 包装器也已重命名。( I1526b) EditorSession现在是一个接口,并且ListenableEditorSession.commitChangesOnClose现在被正确委托。( I7dc3e)- 我们现在拒绝任何具有冲突 ID 设置或选项的用户样式 schema (Ic2715)
- 我们添加了一个重载的
UserStyle.get,它接受UserStyleSetting.Id。( I2aa0f)
版本 1.0.0-alpha18
2021 年 7 月 21 日
androidx.wear:wear-*:1.0.0-alpha18 已发布。版本 1.0.0-alpha18 包含这些提交。
API 变更
- 我们将
ComplicationHelperActivity移至androidx.wear:wear-watchface库。( I39e76) - 为保持一致性和清晰度,
ComplicationProvider已重命名为ComplicationDataSource,所有名称中带有 Provider 的类也已类似地重命名。( Iaef0b) CanvasComplication.isHighlighted已移入RenderParameters.pressedComplicationSlotIds,这是朝着使CanvasComplication无状态迈出的一步。为了支持这一更改,CanvasComplication.render现在也接受slotId作为参数,并且我们现在将ComplicationSlot传入GlesTextureComplication。( I50e6e)- 我们在
EditorRequest中添加了headlessDeviceConfig,如果此参数非空,则用于构造一个无头实例来支持 EditorSession,而不是作用于交互式实例。这允许为非当前表盘调用编辑器。( I0a820) - 我们添加了一个实验性的
WatchFaceMetadataClient,它允许高效检索静态表盘元数据,例如UserStyleSchema和有关ComplicationSlots的固定详细信息。( I6bfdf) - 我们将
CanvasRenderer.uiThreadInit重命名为 init。( I6fff9) - 我们添加了 PreviewScreenshotParams,这是 EditorRequest 的一个可选新参数,它指示 EditorSession 在提交时使用这些参数拍摄预览屏幕截图。预览图像在
EditorState.previewImage上公开。( Ic2c16)
Bug 修复
- 开发者不再需要将 ComplicationHelperActivity 添加到他们自己的 manifest 中。( I6f0c2)
版本 1.0.0-alpha17
2021 年 6 月 30 日
androidx.wear:wear-*:1.0.0-alpha17 已发布。版本 1.0.0-alpha17 包含这些提交。
新功能
在
GlesRenderer中,makeUiThreadContextCurrent和makeBackgroundThreadContextCurrent已被runUiThreadGlCommands和runBackgroundThreadGlCommands取代,两者都接受一个Runnable。库确保在任何给定时间只有一个 GL 命令可运行对象在执行。为了使 UiThread 初始化更容易,我们添加了
CanvasRenderer.uiThreadInit,它在任何渲染调用之前在 UiThread 上调用一次。我们还在CanvasComplication中添加了onRendererCreated,这使得Renderer和CanvasComplication之间共享状态变得更容易。为了清晰起见,我们将
Complication重命名为ComplicationSlot,并将complicationId重命名为complicationSlotId或complicationInstanceId,具体取决于用法
API 变更
- 为了清晰起见,我们将
Complication重命名为ComplicationSlot,并将complicationId重命名为complicationSlotId或complicationInstanceId,具体取决于用法。使用 Complication 的类也已类似地重命名,例如 ComplicationsManager 现在称为 ComplicationSlotsManager。( I4da44) - 在 GlesRenderer 中,
makeUiThreadContextCurrent和makeBackgroundThreadContextCurrent已被runUiThreadGlCommands和runBackgroundThreadGlCommands取代,两者都接受一个Runnable。这些函数仅在您需要在渲染之外进行 GL 调用时才需要,runBackgroundThreadGlCommands和onUiThreadGlSurfaceCreated。这是因为同一个进程中可以有多个 GlesRenderer,每个都有自己的上下文,可能来自不同的表盘。此外,对共享的当前 GL 上下文的访问现在已同步。( I04d59) - 我们添加了
CanvasRenderer.uiThreadInit,它在任何渲染调用之前在 UiThread 上调用一次。此外,为了清晰起见,在 GlesRenderer 中,我们将onGlContextCreated重命名为onBackgroundThreadGlContextCreated,并将onGlSurfaceCreated重命名为onUiThreadGlSurfaceCreated。( If86d0) HeadlessWatchFaceClient和InteractiveWatchFaceClientgetComplicationsSlotState已重命名为getComplicationSlotsState。在ComplicationSlot中:createRoundRectComplicationBuilder、createBackgroundComplicationBuilder和createEdgeComplicationBuilder分别重命名为createRoundRectComplicationSlotBuilder、createBackgroundComplicationSlotBuilder和createEdgeComplicationSlotBuilder。( Ib9adc)- 我们已将 onRendererCreated 添加到 CanvasComplication,这使得 Renderer 和 CanvasComplication 之间共享状态变得更容易。( I5e1ac)
版本 1.0.0-alpha16
2021 年 6 月 16 日
androidx.wear:wear-*:1.0.0-alpha16 已发布。版本 1.0.0-alpha16 包含这些提交。
新功能
- 我们修复了与最近的线程模型更改相关的多个 bug,并解决了表盘编辑器上的其他问题。
Bug 修复
- 防止
onComplicationProviderChooserResult中的 NPE (b/189594557) - 修复了表面陈旧和 drawBlack 的问题 (b/189452267)
- 修复了访问
complicationsManager.watchState中的竞态条件 (b/189457893) - 修复了后台线程生命周期 bug (b/189445428)
- 修复了 Pre-R 表盘编辑器问题 (b/189126313)
- 不要更新编辑器样式更改的直接启动参数 (b/187177307)
版本 1.0.0-alpha15
2021 年 6 月 2 日
androidx.wear:wear-*:1.0.0-alpha15 已发布。版本 1.0.0-alpha15 包含这些提交。
新功能
大多数表盘初始化现在在后台线程上完成,但加载所有表盘渲染等都在 UiThread 上完成。加载和渲染之间存在内存屏障,因此大多数用户表盘不需要做任何特殊的事情。使用 GLES 的表盘可能是一个例外,因为上下文是线程特定的,我们创建了两个链接的上下文,因此可以在后台线程上上传 GL 资源(例如纹理和着色器),并在 UiThread 上使用它们。
我们已将表盘的构造分为三个函数:createUserStyleSchema、createComplicationsManager 和 createWatchFace。我们假设 createUserStyleSchema 和 createComplicationsManager 速度很快,而 createWatchFace 可能需要一些时间来加载资产。利用这一点,我们引入了 WatchFaceControlClient.getDefaultProviderPoliciesAndType,它返回 Complication ID 到 DefaultComplicationProviderPolicies 的映射和默认 ComplicationType。这比创建无头实例更快,因为它不需要完全初始化表盘即可执行查询。
最后,复杂功能现在通过 CanvasComplicationFactory 构建,这允许延迟构建 CanvasComplication 渲染器。
API 变更
- 将
@TargetApi替换为@RequiresApi。( I0184a, b/187447093, b/187447094) - 我们引入了
WatchFaceControlClient.getDefaultProviderPoliciesAndType,它返回一个从复杂功能 ID 到 DefaultComplicationProviderPolicies 的映射以及默认的复杂功能类型。在可能的情况下,使用一种快速路径,避免完全构造一个表盘。为方便起见,WatchFaceService API 已更改,新增了两个方法:createUserStyleSchema 和 createComplicationsManager,其结果将传递给 createWatchFace。此外,复杂功能现在通过 CanvasComplicationFactory 构造,允许延迟构造 CanvasComplication 渲染器。( Iad6c1) - 我们已将 MOST_RECENT_APP 从 SystemProviders 中移除。( I3df00)
- ObservableWatchData 现在是一个密封类。( Ic940d)
- CanvasComplicationFactory.create(通常是 I/O 密集型)现在在后台线程上为每个复杂功能调用,然后才开始 UI 线程渲染。构造和渲染之间存在内存屏障,因此不需要特殊的线程原语。( Ia18f2)
- 表盘构造现在在后台线程上完成,尽管所有渲染都在 UI 线程上完成,GlesRenderer 支持两个链接的上下文以支持此功能。WatchFaceControlClient.createHeadlessWatchFaceClient 和 WatchFaceControlClient.getOrCreateInteractiveWatchFaceClient 可能会在 WatchFaceService.createWatchFace 完成之前解析。随后的 API 调用将阻塞,直到表盘初始化完成。( Id9f41)
- EXPANSION_DP 和 STROKE_WIDTH_DP 在 api.txt 中不再可见。( I54801)
- 我们已将 EditorSession.createOnWatchEditingSession 的行为更改为在出现错误时抛出 TimeoutCancellationException,而不是发送 null 会话。此外,EditorRequest.createFromIntent 和 EditorSession.createOnWatchEditingSession 的返回值现在是非 null。( I41eb4)
版本 1.0.0-alpha14
2021 年 5 月 18 日
androidx.wear:wear-*:1.0.0-alpha14 已发布。版本 1.0.0-alpha14 包含这些提交。
新功能
EditorSession.openComplicationProviderChooser现在返回 ChosenComplicationProvider,其中包含复杂功能 ID、ComplicationProviderInfo以及一个包含提供者选择器返回的任何额外附加信息的 Bundle。- 此外,我们一直在稳步将代码迁移到 Kotlin,现在大多数表盘 API 都使用 Kotlin 定义。
API 变更
- GlesRenderer 属性
eglContext和eglDisplay现在是非空。任何 GL 错误现在通过GlesRenderer.GlesException报告,而不是通过 RuntimeExceptions。(Ib1005) - 我们已将
androidx.wear.watchface.complications.rendering.ComplicationDrawable从 Java 迁移到 Kotlin (Ibc3eb) - 我们已将
androidx.wear.watchface.complications.rendering.ComplicationStyle从 Java 迁移到 Kotlin (I3375e) - 我们在 EditorSession 中为每个复杂功能添加了复杂功能提供者信息。( I37f14)
- 我们扩展了
EditorSession.openComplicationProviderChooser的结果,以包含所选返回的信息。( Iead6d)
Wear Complications & Watchface 版本 1.0.0-alpha13
2021 年 5 月 5 日
androidx.wear:wear-*:1.0.0-alpha13 已发布。版本 1.0.0-alpha13 包含这些提交。
新功能
表盘除了显示时间和小部件外,还可以有重要的视觉元素。为了支持屏幕阅读器,表盘现在可以通过 Renderer 的 additionalContentDescriptionLabels 属性指定辅助功能 ContentDescriptionLabels。此外,为了控制 ContentDescriptionLabels 的排序,已将 accessibilityTraversalIndex 添加到小部件。这可以通过 ComplicationsUserStyleSetting 进行修改。
为了鼓励开发者仔细考虑屏幕阅读器,我们已将
ShortTextComplicationData.Builder、LongTextComplicationData.Builder和RangedValueComplicationData.Builder的contentDescription字段设置为必须传递给其构造函数。如果传入ComplicationText.EMPTY作为contentDescription,则将从文本和标题自动生成contentDescription。WatchFaceControlClient.getOrCreateInteractiveWatchFaceClient现在在表盘在初始化期间抛出异常时会抛出ServiceStartFailureException,这使得诊断表盘启动期间的问题变得容易得多。
API 变更
- 我们增加了对 ComplicationProviderInfo 中空组件名称的支持,这是支持旧版 Wear OS 所必需的。( I744d2)
- 我们已将
androidx.wear.complications.SystemProviders从 Java 迁移到 Kotlin。( Ia1f8b) - 我们已将 android.support.wearable.complications 中的所有类从公共 API 中隐藏,并在需要时在 AndroidX 中创建了相应的包装器。( I7bd50)
- 我们已将
TimeDifferenceComplicationText.Builder中的方法setMinimumUnit重命名为setMinimalTimeUnit。( I20c64) - 我们已将
ShortTextComplicationData.Builder、LongTextComplicationData.Builder和RangedValueComplicationData.Builder的contentDescription字段设置为构造函数中必须传递的参数。( I8cb69) - 我们已将
ComplicationProviderService.onComplicationUpdate重命名为onComplicationRequest,并将此方法的id和type参数封装到数据ComplicationRequest中。相应的监听器已重命名为ComplicationRequestListener,其方法为ComplicationRequestListener.onComplicationData。 (Iaf146) - 我们已从
ComplicationData中移除isActiveAt方法,并公开了validTimeRange字段来替代它。此方法调用可以用validTimeRange.contains替换。 (I65936) - 我们已更改
ComplicationProviderService.onComplicationActivated方法的描述,使其接收ComplicationType而不是int。 (Idb5ff) - 已将
ProviderUpdateRequester从 Java 迁移到 Koltin。 (Ibce13) GlesRender.makeContextCurrent现已公开。表盘代码可能需要在渲染和onGlContextCreated之外进行 GL 调用,并且由于可能同时存在交互式和无头上下文,因此有必要调用此方法。 (I8a43c)- 如果表盘在初始化期间抛出异常,
WatchFaceControlClient.getOrCreateInteractiveWatchFaceClient现在会抛出ServiceStartFailureException。此外,如果createWatchFace耗时超过 6 秒,WatchFaceService现在会抛出异常。 (I59b2f) - 我们已移除
GlesTextureComplication中未使用的id属性。 (I28958) - 表盘现在可以通过
Renderer的additionalContentDescriptionLabels属性指定无障碍ContentDescriptionLabels。除了控制ContentDescriptionLabels的顺序外,还为复杂功能添加了accessibilityTraversalIndex。这可以通过ComplicationsUserStyleSetting进行修改。 (Ib7362) - 扩展了关于表盘中触摸事件处理的文档。 (Iaf31e)
Bug 修复
EditorSession.getComplicationsPreviewData()现在会返回所有复杂功能的映射,而不仅仅是非空复杂功能。对于空复杂功能,将使用EmptyComplicationData实例。 (I1ef7e)
Wear 复杂功能与表盘版本 1.0.0-alpha12
2021 年 4 月 21 日
androidx.wear:wear-*:1.0.0-alpha12 已发布。版本 1.0.0-alpha12 包含以下提交。
新功能
表盘编辑器需要突出显示表盘的各个部分,以帮助传达正在配置的手表方面。我们已扩展 RenderParameters,允许突出显示样式和复杂功能。新增了一个可选的 HighlightLayer,它旨在通过 Alpha 透明度叠加在表盘顶部(屏幕截图 API 可以为您完成此叠加,或者单独提供 HighlightLayer 以实现最大灵活性)。例如,假设您有一种样式可以配置表盘指针的外观,您的渲染器可以在其 renderHighlightLayer 中围绕它们绘制轮廓。
为了鼓励复杂功能提供程序支持无障碍功能,我们已将 PhotoImageComplicationData.Builder、MonochromaticImageComplicationData.Builder 和 SmallImageComplicationData.Builder 的 contentDescription 字段设为强制构造函数参数。已添加 ComplicationTapFilter 和 Complication.createEdgeComplicationBuilder 以支持边缘复杂功能(绘制在屏幕边缘周围)。边缘复杂功能的渲染和命中测试由表盘负责。伴侣编辑器不支持边缘命中测试。
API 变更
- 已将
PROVIDER_前缀添加到SystemProviders中的常量。 (I1e773) - 我们已强制要求在构造函数中传递
PhotoImageComplicationData.Builder、MonochromaticImageComplicationData.Builder和SmallImageComplicationData.Builder的contentDescription字段。 (I9643a) ProviderInfoRetriever.requestPreviewComplicationData已重命名为retrievePreviewComplicationData。 (I911ee)- 已将
ComplicationProviderService从 Java 迁移到 Koltin。 (I849f2) - 方法
ComplicationProviderService.onBind现在是最终方法。 (I39af5) - 我们已恢复接口
CanvasComplication,并将CanvasComplicaitonDrawable、GlesTextureComplication和ComplicationHighlightRenderer移至wear-watchface-complications-rendering。 (I84670) RenderParameters已重构以支持扩展的高亮渲染。现在可以请求渲染样式以及所有或单个复杂功能的高亮显示。此外,CanvasRenderer和GlesRenderer现在有一个新的抽象renderHighlightLayer方法,用于渲染编辑器请求的任何高亮显示。Layer已重命名为WatchFaceLayer。 (Ic2444)- 已添加
ComplicationTapFilter和Complication.createEdgeComplicationBuilder以支持边缘复杂功能。边缘复杂功能的渲染和命中测试由表盘负责。编辑器内部不支持命中测试。 (Ia6604) - 对于
DoubleRangeUserStyleSetting和LongRangeUserStyleSetting:defaultValue、maximumValue和minimumValue现在是 Kotlin 属性。此外,已移除UserStyleSetting.Option中的toBooleanOption、toCoplicationOptions、toListOption等类似函数。 (I52899) - 为表盘可用的设备属性添加了下巴尺寸(chin size)。 (I76e1e)
ComplicationHighlightRenderer的构造函数现在接受outlineExpansion和outlineStrokeWidth参数。 (I87009)ComplicationDrawable.getNoDataText现在是公开 API 的一部分。 (I00598)
版本 1.0.0-alpha11
2021 年 4 月 7 日
androidx.wear:wear-*:1.0.0-alpha11 已发布。版本 1.0.0-alpha11 包含以下提交。
新功能
- 表盘 API 已得到进一步完善。大多数更改只是简单的重命名,但
InteractiveWatchFaceWcsClient和InteractiveWatchFaceSysUiClient已合并到InteractiveWatchFaceClient中。
API 变更
ContentDescriptionLabel.text现在是ComplicationText,而不是旧的可穿戴支持库TimeDependentText。 (I80c03)SystemProviders.GOOGLE_PAY不保证存在于所有 Android R 设备上,因此已从列表中移除。仍可以通过DefaultComplicationProviderPolicy使用此提供程序。 (If01b5)- 为了保持一致性,我们已将
ComplicationUpdateCallback重命名为ComplicationUpdateListener。 (I61ec7) UserStyle有线格式映射已更改为Map<String, byte[]>,并且为了方便起见,已将UserStyleData类添加到公共 API 中,现在由wear-watchface-client和wear-watchface-editor使用。此外,CustomValueUserStyleSetting.CustomValueOption.value现在是byte[]而不是String。 (Iaa103)UserStyleSetting和UserStyleSetting.Option现在分别使用UserStyleSetting.Id和UserStyleSetting.Option.Id来存储其 ID,而不是String。 (I63f72)InteractiveWatchFaceClient.SystemState已重命名为WatchUiState。 (I6a4e0)InteractiveWatchFaceWcsClient和InteractiveWatchFaceSysUiClient已合并,因为职责划分难以解释。 (Iff3fa)Layer枚举值已重命名以提高清晰度。Layer#TOP_LAYER现在是Layer#COMPLICATIONS_OVERLAY,Layer#BASE_LAYER现在是Layer#BASE。 (Ia144e)UserStyleListener已重命名为UserStyleChangeListener。 (I18524)UserStyleRepository已重命名为CurrentUserStyleRepository。 (I6ea53)InteractiveWatchFaceWcsClient.updateInstance已重命名为updateWatchfaceInstance。 (I321dc)- 表盘
TapType事件已重命名以与MotionEvents / Compose对齐。 (I0dfd0) takeWatchfaceScreenshot已重命名为renderWatchFaceToBitmap,takeComplicationScreenshot已重命名为renderComplicationToBitmap。 (Ie0697)CanvasComplication接口已被移除,取而代之的是开放类CanvasComplicationDrawable。 (I1f81f)WatcfaceControlServiceFactory已从公开 API 中移除。 (I1f8d3)- 我们已将
CanvasComplication.setData重命名为CanvasComplication.loadData。 (If1239) ComplicationsManager.bringAttentionToComplication已重命名为displayPressedAnimation。 (Ic4297)WatchFaceService.createWatchFace现在具有@UiThread注解。 (Ib54c2)- 更改了
CanvasComplicationDrawable参数的名称以修复错误。 (I50dac) - 我们已添加
HeadlessWatchFaceClient.toBundle()和HeadlessWatchFaceClient.createFromBundle以支持通过 AIDL 发送HeadlessWatchFaceClient。 (I07c35) HeadlessWatchFaceClient和InteractiveWatchFaceClient现在具有ClientDisconnectListener和isConnectionAlive(),允许您观察连接是否因某种原因(例如表盘被终止)而中断。 (Ie446d)WatchFaceControlClient#getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClientAsync现在是一个挂起函数,并已重命名为getOrCreateInteractiveWatchFaceClient。 (Ib745d)EditorState.commitChanges和hasCommitChanges()已重命名为shouldCommitChanges()。 (I06e04)previewComplicationData已重命名为previewComplicationsData,以表明映射中(通常)有多个复杂功能。 (I56c06)InteractiveWatchFaceWcsClient.bringAttentionToComplication已重命名为displayPressedAnimation,以便与ComplicationsManager.displayPressedAnimation保持一致。 (Ic9999)- 所有表盘实例 ID 的实例都已封装在一个新的
WatchFaceId类中。 (I45fdf) complicationState属性已重命名为complicationsState以表示复数。 (Ided07)- 我们已移除了各种
wear-watchface-clientBinder 转换,它们应该是不必要的。 (Icc4c0) - 为了保持一致性,
EditorServiceClient已重构为使用监听器而不是观察器。 (Iec3a4) - 我们已向
InteractiveWatchFaceSysUiClient和WatchFaceControlClient添加了几个缺失的@Px注解。 (I3277a) - 为了保持一致性,已将
EditorObserverCallback重命名为EditorObserverListener。 (Ie572d) EditorState.watchFaceInstanceId仅限于 Android R API 级别及以上,并且不再可为空。 (Id52bb)EditorSession.launchComplicationProviderChooser已重命名为openComplicationProviderChooser。 (I9d441)EditorSession.createOnWatchEditingSessionAsync已重命名为createOnWatchEditingSession,现在是一个挂起函数。 (Id257b)- 为
EditorSession添加了几个缺失的@UiThread注解。 (I6935c) UserStyleSetting.affectsLayers已重命名为affectedLayers。 (I6e22b)
版本 1.0.0-alpha10
2021 年 3 月 24 日
androidx.wear:wear-*:1.0.0-alpha10 已发布。版本 1.0.0-alpha10 包含以下提交。
新功能
- 现在可以在
WatchFaceService.createWatchFace期间创建 OpenGL 对象(例如纹理),因为GlesRenderer现在需要显式调用initOpenGLContext,这可以在createWatchFace内部完成。
API 变更
IdAndComplicationData有点笨拙,已从公开 API 中移除。使用它的类和接口已进行重构。 (I4c928)- 我们已将
ReferenceTime替换为更具解释性的CountUpTimeReference和CountDownTimeReference。 (Ib66c6) - 添加了一些缺失的
@Px和@ColorInt注解。 (I9bbc3) Complication.complicationConfigExtras现在不可为空,并默认为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 变更
- 已向表盘库添加
TraceEvents。 (I1a141) ComplicationState现在具有一个新的属性initiallyEnabled,这对于预测切换样式的影响很有用。 (I8c905)- 我们已将
InteractiveWatchFaceWcsClient.setUserStyle替换为更强大的命令updateInstance,它可以更改实例 ID、设置样式并清除复杂功能。 (Ife6f6) WatchFaceClient屏幕截图 API 不再压缩屏幕截图,因为这会很慢,而是将任何后期处理留给调用者。 (Id35af)- 现在可以通过
EditorService.closeEditor远程关闭表盘编辑器。 (Ic5aa4) - 添加了可空性注解。 (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构建,因此ComplicationHelperActivity将从公共 API 中移除。 (Ib19c1) - 移除
ComplicationText静态方法,转而使用构建器。 (Ibe399) - 我们已为各种表盘库的挂起方法引入了 Guava
ListenableFuture包装器。 (I16b2c) - 为了 API 的清晰度,我们为
RenderParameters添加了一个不要求着色的次要构造函数,用于LayerMode.DRAW_OUTLINED之外的LayerModes。 (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现在是一个挂起函数,这意味着表盘在等待 I/O 时不再需要阻塞 UI 线程。wear-watchface-editor和wear-complications-data也是如此。
API 变更
- 移除
PhotoImage类并直接使用Icon。 (I8a70b) - 公开
ComplicationData的validTimeRange。 (I91366) - 使类似图像的属性更加明确。 (I81700)
wear-watchface-editor和wear-complications-data已重构为使用挂起函数而不是协程。Rx Java 和 Future 兼容包装器将随后推出。 (If3c5f)- 如果
requestPreviewComplicationData由于连接问题或缺少 API 支持而无法返回预览数据,ProviderInfoRetriever现在会抛出PreviewNotAvailableException。 (I4964d) WatchFaceControlService::createWatchFaceControlClient现在是一个挂起函数,并且getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClient现在被称为getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClientAsync,返回Deferred<InteractiveWatchFaceWcsClient>。Rx Java 和 Future 兼容包装器将随后推出。 (I5d461)- 将
CATEGORY_PROVIDER_CONFIG_ACTION重命名为CATEGORY_PROVIDER_CONFIG。 (I7c068) - 请注意,
createOnWatchEditingSession现在是一个挂起函数,因为表盘有时在编辑器活动启动后不久才可用。 (Ida9aa) WatchFaceService.createWatchFace现在是一个挂起函数,允许异步初始化,而以前您必须阻塞主线程。 (If076a)UserStyle现在具有数组运算符,并且我们已向UserStyle.Option添加了强制转换帮助器。 (I35036)- 我们已修复了
UserStyle有线格式的封送处理错误,该错误更改了一些不稳定的隐藏 API。 (I8be09) - 我们已添加
CustomValueUserStyleSetting,它允许您在UserStyle中存储单个应用程序特定的字符串。默认表盘编辑器将忽略此值。 (Ic04d2) - 对于我们无法升级的 Android WearOS 的 R 及更早版本,
InstanceID不会在意图附加信息中传递。为了支持这一点,我们现在允许InstancID为空。 (Id8b78) EditorRequest现在包含编辑器ComponentName,它在WatchFaceEditorContract.createIntent中设置为组件。 (I3cd06)- 表盘
EditorResult现在包含预览ComplicationData,允许调用者在编辑后截取表盘的屏幕截图。 (I2c561)
Bug 修复
- 为
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,表盘将使用新的EditorSession类访问WatchFace详细信息,并通过Activity.setWatchRequestResult记录结果。为了支持这一点,我们添加了ProviderInfoRetriever.requestPreviewComplicationData,它允许表盘编辑器请求预览ComplicationData。预览ComplicationData的优势在于,与实时数据不同,在渲染编辑器时您无需担心显示权限对话框(请注意,如果用户选择具有权限的提供程序,他们仍将被提示授予权限)。
API 变更
ComplicationProviderInfo现在有一个用于提供程序的ComponentName的字段,对该字段的支持将在稍后添加到 WearOS 中,在此期间它将为空。 (Id8fc4)- 我们添加了
ProviderInfoRetriever.requestPreviewComplicationData,它允许表盘编辑器请求预览ComplicationData。这很有用,因为实时复杂功能可能需要权限,现在您可以显示不活动的复杂功能的预览数据。 (I2e1df) ComplicationManager现在是WatchFace构造函数的可选参数,并且参数已重新排序以允许此操作。 (I66c76)- 我们已向复杂功能添加了一个可选的
Bundle,如果设置,它将与发送用于启动提供程序选择器活动的意图合并。 (Ifd4ad) - 我们已添加了一个新的
wear-watchface-editor库,以支持表盘上的编辑器和 SysUI 托管的编辑器。SysUI 将通过发送 Intent 启动这些编辑器。表盘活动服务可以使用新的EditorSession类访问WatchFace详细信息,并通过Activity.setWatchRequestResult记录结果。 (I2110d) LayerMode.DRAW_HIGHLIGHTED现在被称为LayerMode.DRAW_OUTLINED,RenderParameters.highlightComplicationId现在被称为RenderParameters.selectedComplicationId,它除了轮廓外还会在指定的复杂功能上绘制高亮。 (I90a40)WatchFaceControlClient.getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClient的 Future 现在可以在服务在等待表盘创建时崩溃时,以ServiceStartFailureException解析。 (I0f509)EditorSession.complicationPreviewData现在是一个ListenableFuture,因为获取此数据是一个异步过程。 (Iead9d)
Bug 修复
- 我们正在从
ComplicationOverlay中移除未使用的字段,只保留enabled和complicationBounds。 (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>而不是int数组,使其更易于使用。 (I1f13d)ProviderInfoRetriever.retrieveProviderInfo现在正确返回ListenableFuture<ProviderInfo[]>。 (If2710)- 您现在可以通过在构建器上调用
setEnabled(false)来创建初始禁用的复杂功能。 (Idaa53) WatchFaceState现在有一个isHeadless属性,仅当实例为无头实例时才为 true。 (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。请注意,硬件 Canvas 支持需要 API 级别 26 或更高。 (Ic9bbd)InteractiveWatchFaceWcsClient现在有一个getComplicationIdAt助手。 (I05811)wear-watchface-client的 API 级别已降低到 25,但屏幕截图 API 需要 API 级别 27。 (Id31c2)
Bug 修复
- 我们现在在
ComplicationState中公开复杂功能当前ComplicationData的ComplicationType。 (I9b390) InteractiveWatchFaceWcs现在有一个bringAttentionToComplication方法,用于短暂高亮显示指定的复杂功能。 (I6d31c)InteractiveWatchFaceWcsClient#setUserStyle现在有一个接受 Map 的重载。这可以潜在地避免构造 UserStyle所需的额外 IPC 往返。 (I24eec)
版本 1.0.0-alpha03
2020 年 12 月 2 日
androidx.wear:wear-*:1.0.0-alpha03 已发布。版本 1.0.0-alpha03 包含以下提交。
新功能
Complication 类现在具有 complicationData 属性,允许表盘观察 ComplicationData 更改。这使得根据复杂功能的类型更改复杂功能的尺寸成为可能。
现在通过将 Renderer.interactiveDrawModeUpdateDelayMillis 赋值来支持可变帧率。对于每秒运行短动画的表盘,这可以在不动画时进入睡眠状态,从而实现良好的省电效果。
API 变更
BACKGROUND_IMAGE已重命名为PHOTO_IMAGE以及相关类。这种复杂功能并非专门用于背景,因此名称已更改。 (I995c6)DefaultComplicationProviderPolicy已正确使用IntDefs进行注解。 (I3b431)- 隐藏的
TimeDependentText类不再通过ContentDescriptionLabel公开,而是添加了一个访问器以在指定时间获取文本。 (Ica692) ObservableWatchData的构造函数现在是内部的。 (I30121, b/173802666)Complication现在具有complicationData,允许表盘观察ComplicationData更改。Complication还有一个新的isActiveAt调用,可用于判断在提供的日期时间是否应渲染任何内容。 (Ic0e2a)- 空的
SharedMemoryImage不再是公开 API。 (I7ee17) WatchFace.overridePreviewReferenceTimeMillis现在具有IntRange注解,并且 getter 和 setter 具有一致的名称。 (Ia5f78)Complication.Builder现在通过Complication.createRoundRectComplicationBuilder或Complication.createBackgroundComplicationBuilder创建,以提高清晰度。 (I54063)- 添加了
WatchFace.TapListener,允许表盘观察未被复杂功能消耗的点击。 (Ic2fe1, b/172721168) - 表盘现在通过将
Renderer.interactiveDrawModeUpdateDelayMillis赋值来支持可变帧率。这可以在不动画时进入睡眠状态,从而有助于延长电池寿命。 (I707c9) WatchFace.Builder不再需要,并且invalidate()和interactiveUpdateRateMillis已移至Renderer。 (I329ea)- 为了更好的 Java 互操作性,重命名了
WatchState中布尔属性的 getter。 (I6d2f1) - 为了保持一致性,已将
TapListener重命名为TapCallback,将InvalidateCallback重命名为InvalidateListener。 (I9414e) - Wear 2.0 表盘样式选项已移至其自己的类以提高清晰度。
WatchFace.Buildersetter 现在具有对称的WatchFace类 getter。 (Iefdfc) - 添加了
InteractiveWatchFaceWcsClient和WatchFaceControlClient.getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClient,它可以在壁纸服务连接并创建引擎后获取现有实例或创建新实例。 (Id666e) WatchFaceControlClient现在是一个接口,允许测试模拟它。 (I875d9)HeadlessWatchFaceClient、InteractiveWatchFaceSysUiClientImpl、InteractiveWatchFaceWcsClient现在是接口,以便更好地促进测试。 (I7cdc3)- 已向
wear-watchface-complications-rendering中的方法添加注解。 (I0d65c)
Bug 修复
- 从
DeviceConfig中移除了屏幕形状,因为它与android.content.res.Configuration#isScreenRound()重复。 (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)- 简化
RendererAPI 表面,可以使用SurfaceHolder.Callback来观察更改。 (I210db) CanvasComplicationRenderer不扩展自Renderer,为了清晰起见对其进行了重命名。 (Ibe880)
Bug 修复
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-dataAPI。 (I7c268) - 布尔返回值的函数应以“is”而不是“get”作为前缀。 (If36ff)
- API 建议是避免使用
protected,因此此类的参数已重构为通过构造函数传入。 (I61644) - 为清晰起见,重命名
setBackgroundComplication。 (I96fe3) - 为
ComplicationDrawable的isHighlighted和data使用 Kotlin 属性。 (I4dcc8) - 我们添加了
Complication#invalidate()而不是ComplicationRenderer.InvalidateCallback。 (I4f4c6) - 这些 API 在 WearableSupport 中已弃用,并在此处移除。 (Ib425c)
- 重命名了一些
WatchFace构建器方法,以强调其 Wear 2.0 遗留性质。 (Idb775) wear/wear-watchface的第一个 Beta 版 API 候选。 (Id3981)- API 的第一个跟踪版本。 (Ie9fe6)
- 正确隐藏
ComplicationDrawable.BorderStyleIntDef并为了保持一致性移动到ComplicationStyle。 (I27f7a) - 为
ComplicationStyle方法添加缺失的注解。 (I838fd) - 此库没有公共 API 表面。 (I88e2b)
- 所有样式类别
Option类现在都已正确地设置为 final。 (Ib8323) - API 的第一个跟踪版本。 (I27c85)
Bug 修复
- 更改了
ComplicationProviderService以具有显式的getComplicationPreviewData方法。 (I4905f) - AndroidX 已启用
MissingGetterMatchingBuilder的 API lint 检查。 (I4bbea, b/138602561) - 重命名
wear-complications-rendering。 (Ifea02) - 样式类别显示名称现在是
CharSequences。 (I28990) - 将
Override替换为Overlay以匹配当前主题和样式命名约定。 (I4fde9) - 为了清晰起见,重命名了
UserStyle#getOptions。 (I695b6)
版本 1.2.0
版本 1.2.0
2021 年 9 月 15 日
androidx.wear:wear:1.2.0 已发布。版本 1.2.0 包含以下提交。
自 1.1.0 以来的重要更改
添加了
CurvedText组件,用于轻松编写沿视图中可内切的最大圆弧度弯曲的文本。使用示例<androidx.wear.widget.CurvedText 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" />
添加了
ArcLayout容器,用于将其子元素逐个沿顺时针或逆时针方向的弧线布局。其子元素可以是标准 Android 小组件,也可以是实现ArcLayout.Widget接口的“弯曲”小组件。 (I536da) 使用示例<androidx.wear.widget.ArcLayout 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.CurvedText 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>
添加了一个新的布局容器
DismissibleFrameLayout,它处理返回按钮关闭和/或滑动关闭,旨在用于活动内部。必须至少添加一个监听器以对关闭操作进行处理。监听器通常会从当前活动中移除包含视图或片段。提供了setSwipeDismissible(boolean)和setBackButtonDismissible(boolean)以直接控制这些功能。这个新布局旨在替换现有的SwipeDismissFrameLayout。在
AmbientModeSupport类中添加了支持,以指示当设备离开微光模式时,Activity 可以“自动恢复”。此功能以前在 WearableSupportLibrary 中已弃用的WearableActivity类中提供。 (I336ab)从 Wearable Support Library 迁移了
WearableCalendarContract类。此 API 提供了通过 CalendarContract 可用的数据子集,但会自动同步到可穿戴设备。 (I6f2d7)在
androidx.wear.utils中添加了一个新的 APIWearTypeHelper,用于确定给定可穿戴设备是否适用于中国。 (Ib01a9)已向
androidx.wear.widget.ConfirmationOverlay添加无障碍功能,如果设置,它将读出消息,然后是动画描述。 (I524dd)修复了
ConfirmationActivity在未提供消息时崩溃的错误。 (Ie6055)修复了水平滚动
RecyclerViews导致WearableDrawerLayout在所有交互中进行窥视的错误。 (I24c7f)
版本 1.2.0-rc01
2021 年 9 月 1 日
androidx.wear:wear:1.2.0-rc01 已发布,自上一个 Beta 版本以来没有更改。版本 1.2.0-rc01 包含以下提交。
版本 1.2.0-beta01
2021 年 8 月 18 日
androidx.wear:wear:1.2.0-beta01 已发布。版本 1.2.0-beta01 包含以下提交。
Bug 修复
- 修复了
ConfirmationActivity在未提供消息时崩溃的错误。 (Ie6055)
版本 1.2.0-alpha13
2021 年 8 月 4 日
androidx.wear:wear:1.2.0-alpha13 已发布。 版本 1.2.0-alpha13 包含以下提交。
API 变更
- 将
WearTypeHelper.isChinaDevice重命名为WearTypeHelper.isChinaBuild。( I47302)
Bug 修复
- 我们已为
androidx.wear.widget.ConfirmationOverlay添加了无障碍功能,如果设置了消息,则会在动画描述后读出消息。(I524dd)
版本 1.2.0-alpha12
2021 年 7 月 21 日
androidx.wear:wear:1.2.0-alpha12 已发布。 版本 1.2.0-alpha12 包含以下提交。
API 变更
- 我们已在
androidx.wear.utils中添加了一个新 APIWearTypeHelper,用于判断给定的 Wear 设备是否适用于中国。(Ib01a9)
版本 1.2.0-alpha11
2021 年 6 月 30 日
androidx.wear:wear:1.2.0-alpha11 已发布。 版本 1.2.0-alpha11 包含以下提交。
Bug 修复
- 修复了水平滚动
RecyclerViews导致WearableDrawerLayout在所有交互中进行窥视的错误。 (I24c7f)
版本 1.2.0-alpha10
2021 年 6 月 2 日
androidx.wear:wear:1.2.0-alpha10 已发布。 版本 1.2.0-alpha10 包含以下提交。
新功能
- Alpha10 改进了 Curved Text 和 ArcLayouts 中的无障碍支持。它还在 DismissibleFrameLayout 中进行了一些小的重命名,以帮助澄清 API。
API 变更
- 我们已将
DismissibleFrameLayout中的以下方法重命名 (Ib195e)Callback#onDismissed->Callback#onDismissedFinishedisSwipeDismissible->isDismissableBySwipeisBackButtonDismissible->isDismissableByBackButton
- 我们已将以下方法设置为 final (Ib195e)
setBackButtonDismissiblesetSwipeDismissibleregisterCallbackunregisterCallback
Bug 修复
版本 1.2.0-alpha09
2021 年 5 月 18 日
androidx.wear:wear:1.2.0-alpha09 已发布。 版本 1.2.0-alpha09 包含以下提交。
API 变更
- 添加了一个新函数
CurvedTextView.setTypeface()(类似于TextView的),用于设置文本字体和粗体/斜体样式。(I4653c) - 已将
WearArcLayout重命名为ArcLayout,将WearCurvedText重命名为CurvedText,并将WearArcLayout.ArcLayoutWidget重命名为ArcLayout.Widget。(I6e5ce)- 在
ArcLayout.Widget中,已将getThicknessPx重命名为getThickness。 - 在
ArcLayout.LayoutParams上的垂直对齐常量现在以VERTICAL_ALIGN_开头命名(而不是之前的VALIGN_)
- 在
- 在
CurvedTextView中,方法setMinSweepDegrees和setMaxSweepDegrees已被setSweepRangeDegrees替换 (I7a9d9)
版本 1.2.0-alpha08
2021 年 5 月 5 日
androidx.wear:wear:1.2.0-alpha08 已发布。 版本 1.2.0-alpha08 包含以下提交。
API 变更
- 为了提高代码清晰度,我们为一些角度参数和返回类型添加了
@FloatRange注解。(I430dd) - 在接口
WearArcLayout.ArcLayoutWidget中,方法insideClickArea现在名为 isPointInsideClickArea。(Ia7307)
版本 1.2.0-alpha07
2021 年 3 月 24 日
androidx.wear:wear:1.2.0-alpha07 已发布。 版本 1.2.0-alpha07 包含以下提交。
Bug 修复
- 修复了 WearArcLayout 中非弯曲子项因屏幕高度大于宽度而导致的错误。这些非弯曲子项现在在所有屏幕类型上都能正确地放置在弧形内部。
版本 1.2.0-alpha06
2021 年 1 月 27 日
androidx.wear:wear:1.2.0-alpha06 已发布。 版本 1.2.0-alpha06 包含以下提交。
API 变更
- 将进行中的活动库迁移到一个新的子库:wear-ongoing。类现在位于 androidx.wear.ongoing 软件包中(以前是 androidx.wear.ongoingactivities)(I7c029)
- 将 WearableCalendarContract 类从 Wearable 支持库迁移到 AndroidX。此 API 提供了通过 CalendarContract 可用的数据子集,但会自动同步到可穿戴设备。(I6f2d7)
Bug 修复
- 默认情况下,在 Dismissible FrameLayout 中禁用返回按钮关闭功能,因为滑动关闭仍然是 Wear 设备上全屏返回的主要方式 (Ic24e3)
- 修复了 WearArcLayout 中处理子项可见性的一些问题 (Icf912)
版本 1.2.0-alpha05
2021 年 1 月 13 日
androidx.wear:wear:1.2.0-alpha05 已发布。 版本 1.2.0-alpha05 包含以下提交。
Bug 修复
- 更新了 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)。这简化了弧形布局和弯曲文本之间的约定,因为弯曲文本默认在顶部居中绘制自身,并且父级弧形布局可以将其旋转到所需位置。(I105ff)
版本 1.2.0-alpha03
2020 年 12 月 2 日
androidx.wear:wear:1.2.0-alpha03 已发布。 版本 1.2.0-alpha03 包含以下提交。
新功能
一个新的布局容器 DismissibleFrameLayout,用于处理返回按钮关闭和/或滑动关闭,旨在活动中使用。必须添加至少一个监听器来响应关闭操作。监听器通常会从当前活动中移除包含视图或片段。提供了 setSwipeDismissible(boolean) 和 setBackButtonDismissible(boolean) 以直接控制这些功能。此新布局旨在取代现有的 SwipeDismissFrameLayout。
弯曲小部件现在可以处理触摸事件。WearArcLayout 中的普通小部件将接收所有触摸事件,并映射到其坐标空间。WearCurvedTextView(无论是否在 WearArcLayout 中)都可以设置 onClick 和 onLongClick 处理程序。
正在进行的活动类现在是 VersionedParcelables,而不是使用自定义序列化/反序列化。现在需要静态图标和触摸意图。
API 变更
- WearCurvedTextView 的“sweepDegrees”属性已拆分为 minSweepDegrees 和 maxSweepDegrees,以提供更灵活的小部件布局。
版本 1.2.0-alpha02
2020 年 11 月 11 日
androidx.wear:wear:1.2.0-alpha02 已发布。 版本 1.2.0-alpha02 包含以下提交。
此版本首次添加了新的“正在进行的活动 API”。开发者可以使用此 API 来指示正在进行的长时间运行的活动,例如健身运动或媒体播放会话。它允许开发者提供周期性状态更新,例如“跑步距离和时间”或“当前播放曲目”,以在表盘或应用启动器中显示。此功能针对未来启用了正在进行的活动功能的设备。
API 变更
- 正在进行的活动的新 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.2
版本 1.2.0-alpha02
2021 年 9 月 29 日
androidx.wear:wear-input:1.2.0-alpha02 和 androidx.wear:wear-input-testing:1.2.0-alpha02 已发布。 版本 1.2.0-alpha02 包含以下提交。
API 变更
- 已将
WearableRemoteInputExtender中的disallowEmoji重命名为setEmojisAllowed,用于设置是否显示绘制表情符号的选项。(I28393)
版本 1.2.0-alpha01
2021 年 9 月 15 日
androidx.wear:wear-input:1.2.0-alpha01 和 androidx.wear:wear-input-testing:1.2.0-alpha01 已发布。 版本 1.2.0-alpha01 包含以下提交。
API 变更
- 公开了
WearableButtons中的所有按钮位置常量。(Ibb12c) - 添加了
WearableRemoteInputExtender类,可用于向 android.app.RemoteInput 添加 Wear 特定的额外数据。(I01903)
Wear-Input 1.1.0
版本 1.1.0
2021 年 8 月 18 日
androidx.wear:wear-input:1.1.0 和 androidx.wear:wear-input-testing:1.1.0 已发布。 版本 1.1.0 包含以下提交。
自 1.0.0 以来的重要变更
- 添加了
RemoteInputIntentHelper。- 此类别可用于构建 RemoteInput Intent。然后,这可用于在可定制的活动中向用户请求输入。
版本 1.1.0-rc01
2021 年 8 月 4 日
androidx.wear:wear-input:1.1.0-rc01 和 androidx.wear:wear-input-testing:1.1.0-rc01 已发布。 版本 1.1.0-rc01 包含以下提交。
自 androidx.wear:wear-input:1.1.0-beta01 和 androidx.wear:wear-input-testing:1.1.0-beta01 以来无 API 更改
版本 1.1.0-beta01
2021 年 7 月 21 日
androidx.wear:wear-input:1.1.0-beta01 和 androidx.wear:wear-input-testing:1.1.0-beta01 已发布,自 1.1.0-alpha03 以来无更改。 版本 1.1.0-beta01 包含以下提交。
版本 1.1.0-alpha03
2021 年 6 月 30 日
androidx.wear:wear-input:1.1.0-alpha03 和 androidx.wear:wear-input-testing:1.1.0-alpha03 已发布。 版本 1.1.0-alpha03 包含以下提交。
Bug 修复
- 修复了一个错误,该错误导致通过
RemoteInputHelper.putRemoteInputsExtra添加了RemoteInput的 RemoteInput Intent 被拒绝。
版本 1.1.0-alpha02
2021 年 5 月 18 日
androidx.wear:wear-input:1.1.0-alpha02 和 androidx.wear:wear-input-testing:1.1.0-alpha02 已发布。 版本 1.1.0-alpha02 包含以下提交。
API 变更
RemoteInputIntentHelper的方法,用于获取或放置表示标题、取消、确认和进行中标签的额外数据,现在对这些标签使用CharSequence而不是String。(I0e71f)
版本 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 类从 Wearable 支持库迁移到 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 功能从 Wearable 支持库迁移到 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 功能从 Wearable 支持库迁移到 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 以来的主要更改
- 为了符合 Android 命名约定,为
BoxInsetLayout的 boxedEdges 属性添加了layout_前缀(现在是layout_BoxedEdges)。这将消除 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 包含以下提交。
Bug 修复
- 修复了操作抽屉打开时未显示内容的问题。(I01026, b/163870541)
版本 1.1.0-rc02
2020 年 6 月 24 日
androidx.wear:wear:1.1.0-rc02 已发布。 版本 1.1.0-rc02 包含以下提交。
Bug 修复
- 为了符合 Android 命名约定,为
BoxInsetLayout的 boxedEdges 属性添加了layout_前缀(现在是layout_boxedEdges)。这将消除 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)
Bug 修复
- 更新了
WearableActionDrawView,以延迟操作抽屉的膨胀,直到抽屉首次打开。(5cd32f7)