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
和BridgingConfig
API,用于在运行时启用/禁用通知,并可选地设置免于桥接模式的通知标签。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
和InteractiveWatchFaceClient
getComplicationsSlotState
已重命名为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-client
Binder 转换,它们应该是不必要的。 (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.Builder
setter 现在具有对称的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)- 简化
Renderer
API 表面,可以使用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-data
API。 (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.BorderStyle
IntDef
并为了保持一致性移动到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#onDismissedFinished
isSwipeDismissible
->isDismissableBySwipe
isBackButtonDismissible
->isDismissableByBackButton
- 我们已将以下方法设置为 final (Ib195e)
setBackButtonDismissible
setSwipeDismissible
registerCallback
unregisterCallback
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)