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.0.1 | - | - | 1.1.0-alpha04 |
wear-remote-interactions | 1.0.0 | 1.1.0-rc01 | - | - |
声明依赖项
如需添加 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.0.1" // 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.0.1") // Use to implement support for interactions between the Wearables and Phones implementation("androidx.wear:wear-remote-interactions:1.1.0") }
如需详细了解依赖项,请参阅添加 build 依赖项。
反馈
您的反馈将帮助我们改进 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
错误,以避免垂直快速滑动时意外关闭 fragment ArcLayout
现在支持展开权重,其运作方式与常规布局权重类似。- 在
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 修复
- 添加了 null 检查,以处理在
SwipeToDismiss
中重置 alpha 和平移时父视图为 null 的情况。(Ib0ec7)
版本 1.3.0-alpha05
2023 年 4 月 19 日
发布了 androidx.wear:wear:1.3.0-alpha05
。版本 Version 1.3.0-alpha05 中包含这些提交内容。
API 变更
- 迁移
AmbientModeSupport
以使用LifecycleObserver
。弃用AmbientModeSupport
,改用新的生命周期感知类。(I1593b)
bug 修复
- 更新了
SwipeDismissTransitionHelper
背景 scrim 方法,以使用可绘制对象(而非添加视图)来修复使用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
添加了权重,可使 widget 展开以填满可用空间。如果有多个 widget,则它们的可用空间份额会与其权重成正比。此外,我们还添加了ArcLayout.setMaxAngleDegrees
,以便您设定展开的上限,例如限定在 90 度(注意:这不会影响任何尺寸固定的子 widget 的布局)。最后,ArcLayout.Widget
现在具有setSweepAngleDegrees
,可使ArcLayout
通知某个权重不为零的 widget,让其知道自己的尺寸。(I75f24) - 更新了
setColorFilter
的可为 null 性(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 中的 fragment (Idb6d8)
- 修复了 ConfirmationOverlay 没有消息这一问题 (I63e6f)
外部贡献
- Dae Gyu LEE (Samsung) - 避免垂直快滑时意外关闭 SwipeDismissFrameLayout 中的 fragment (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-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 远程互动库的 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
,用于检查是否可以启动远程 activity 的功能。(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 修复
- 现在,如果未在给定请求网址中设置重定向网址,
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 修复
- 修复了以下问题:在没有
excludedTags
的情况下,尝试停用桥接通知功能时,BridgingManager
会抛出异常。
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 的主要功能
Phone Interaction 库包含用于实现从穿戴式设备到手机的交互的 API。它包含以下各项:
PhoneDeviceType
,提供了辅助方法,用于确定当前手表配对的手机类型,并仅在穿戴式设备上使用。BridgingManager
、BridgingManagerService
和BridgingConfig
API,用于在运行时启用/停用通知,还可以为免于进入桥接模式的通知按需设置标记。RemoteAuthClient
,不仅支持在穿戴式设备上进行远程身份验证,还支持添加 OAuth PKCE 扩展。此外,还提供了用于通信的其他处理程序和辅助类。
Remote Interaction 库包含用于在穿戴式设备和手机之间进行交互的 API。它包含以下各项:
WatchFaceConfigIntentHelper
,提供了辅助函数,用于在手机配套的表盘配置 activity 中指定 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 修复
- 修复了一个 bug,以在使用 RemoteActivityHelper 时阻止 Google Play 服务中引发的错误传播到调用方 (I60d60)
- 修复了如下 bug:在没有已连接节点或者未找到所请求的 nodeId 的情况下 RemoteActivityHelper 永远无法完成其 Future (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 修复
- 向在 SDK 33 及更高版本中需要授予
POST_NOTIFICATIONS
权限的 API 添加了@RequiresPermission
。(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 Ongoing Activities 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 库,以根据设备类型(RoW/中国)自动选择 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 直接设置的所有值(或从关联的 Notification 中获取的默认值)。(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
类(以前是穿戴式设备支持库中的 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
常量,使新库与穿戴式设备支持库中的实现向后兼容。
bug 修复
- 修复了启动 OAuth 会话时新 OAuth API 引起的异常。
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 从穿戴式设备支持库迁移到 AndroidX。迁移后的这个类已重命名为 RemoteAuthClient,它不但支持在穿戴式设备上进行远程身份验证,还支持添加 OAuth PKCE 扩展。此外,还提供了用于通信的其他处理程序和辅助类。
- 现在,使用新的 ConcurrentActivity.Builder 构造函数,可将正在进行的活动与具有标记的 Notification 关联起来。
API 变更
- 添加了对 Ongoing Activities 库中的通知标记的支持 (I653b4)
- 将 OAuthClient 从 Wear 支持库迁移到 AndroidX 中,并添加了对 OAuth PKCE 扩展的支持 (I3eaa)
Wear-Remote-Interactions 版本 1.0.0-alpha02
2021 年 3 月 10 日
发布了 androidx.wear:wear-remote-interactions:1.0.0-alpha02
。版本 1.0.0-alpha02 中包含这些提交内容。
新功能
- 将 PlayStoreAvailability 类从穿戴式设备支持库迁移到 AndroidX 中,该类提供了用于检查手机上是否有 Play 商店的 API。
bug 修复
- 将 PlayStoreAvailability 类从穿戴式设备支持库迁移到 AndroidX 中。(I69bfe)
版本 1.0.0-alpha02
2021 年 2 月 10 日
发布了 androidx.wear:wear-ongoing:1.0.0-alpha02
和 androidx.wear:wear-phone-interactions:1.0.0-alpha02
。版本 1.0.0-alpha02 中包含这些提交内容。
API 变更
- 现可支持更复杂的状态。它们由一个(或多个)模板和一系列用于填充模板占位符的 Part 组成。OngoingActivityStatus 现在具有一种静态方法,用于创建仅具有一个部分(Text 或 Timer)的简单状态;以及一个用于创建更复杂的状态的 Builder。 (I1fe81)
- 将 BridgingManager 和 BridgingConfig 类从 Wear 支持库移至 AndroidX,所提供的 API 可用于在运行时启用/停用通知,还可以为免于进入桥接模式的通知按需设置标记。 (I3a17e)
版本 1.0.0-alpha01
2021 年 1 月 27 日
发布了 androidx.wear:wear-ongoing:1.0.0-alpha01
、androidx.wear:wear-phone-interactions:1.0.0-alpha01
和 androidx.wear:wear-remote-interactions:1.0.0-alpha01
。版本 1.0.0-alpha01 中包含这些提交内容。
API 变更
将 Ongoing Activities 库迁移到新的子库:wear-ongoing。之前位于 androidx.wear.ongoingactivities 中的类现在位于 androidx.wear.ongoing 软件包中 (I7c029)
创建新的支持库,其中包含的类可支持从穿戴式设备至手机间的交互。该库中最初填充了从穿戴式设备支持库迁移的类。(Id5180)
将 PhoneDeviceType 类从穿戴式设备支持库迁移到 AndroidX。迁移的类已重命名为 PhoneTypeHelper,该类提供辅助方法来确定当前手表配对的手机类型,并仅在穿戴式设备上使用。(Ibd947)
创建新的支持库,其中包含支持在穿戴式设备和手机之间进行交互的类。该库中最初填充了从穿戴式设备支持库迁移的类。(I9deb4)
将 WatchFaceCompanion 类从穿戴式设备支持库迁移到 AndroidX。迁移的类已重命名为 WatchFaceConfigIntentHelper,该类提供辅助函数,用于在手机配套的表盘配置 activity 中指定 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 现已订阅生命周期观察器,因此,您不必在 Activity 销毁时明确关闭它。
API 变更
- EditorSession 和 ListenableEditorSession 现已针对 complicationSlotsState、ComplicationsPreviewData 和 ComplicationsDataSourceInfo 使用 kotlin StateFlow。(I761d9)
- EditorSession#userStyle 现为
MutableStateFlow<UserStyle>
(I32ca9) - EditorSession.createOnWatchEditorSession 现在使用生命周期观察器,并在观察到 onDestroy 时自动关闭。此外,
createOnWatchEditorSession
现在只需要传入 Activity。ListenableEditorSession 也应用了相同的更改。(Ic6b7f) - CustomValueUserStyleSetting 的构造函数已恢复为相应公共 API 的一部分。(I2e69a)
UserStyle
现在继承自Map<UserStyleSetting, UserStyleSetting.Option>
,并且如果设置不在架构中或选项与设置不匹配,MutableUserStyleSetting#put
会抛出 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 和复杂功能 API 现在使用不可变的 ZonedDateTime,而不是 Calendar。(I25cf8)
- ComplicationSlots 现在使用 NoDataComplicationData 进行初始化,因此 ComplicationSlot.complicationData 始终具有值,并且 CanvasComplicationDrawable.complicationData 不再可为 null。(I4dfd6) 这会减少(但不会消除)切换表盘时的复杂功能闪烁问题。
版本 1.0.0-alpha20
2021 年 8 月 18 日
发布了 androidx.wear:wear-*:1.0.0-alpha20
。版本 1.0.0-alpha20 中包含这些提交内容。
API 变更
- 我们向 ComplicationDataSourceInfo 添加了 createFallbackPreviewData,可在 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 架构的最大传输尺寸施加了限制。此外,架构中的图标大小不得超过 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,我们都会一律予以拒绝 (Ic2715)
- 我们添加了可接受
UserStyleSetting.Id
的已重载的UserStyle.get
。(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)- 我们已将
headlessDeviceConfig
添加到EditorRequest
;如果此参数不为 null,则将用于构造无头实例,以支持 EditorSession,而不是针对交互式实例执行操作。这样支持为非当前表盘调用该编辑器。(I0a820) - 我们添加了实验性
WatchFaceMetadataClient
,可用于高效检索静态表盘元数据(如UserStyleSchema
);还修复了ComplicationSlots
的相关详情。(I6bfdf) - 我们已将
CanvasRenderer.uiThreadInit
重命名为 init (I6fff9) - 我们为 EditorRequest 添加了可选的新参数 PreviewScreenshotParams,该参数会指示 EditorSession 在提交时抓取预览屏幕截图。预览图片在
EditorState.previewImage
上公开。(Ic2c16)
bug 修复
- 开发者不再需要将 ComplicationHelperActivity 添加到自己的清单中。(I6f0c2)
版本 1.0.0-alpha17
2021 年 6 月 30 日
发布了 androidx.wear:wear-*:1.0.0-alpha17
。版本 1.0.0-alpha17 中包含这些提交内容。
新功能
在
GlesRenderer
中,makeUiThreadContextCurrent
和makeBackgroundThreadContextCurrent
已替换为都接受Runnable
的runUiThreadGlCommands
和runBackgroundThreadGlCommands
。该库可确保在任何给定时间只有一个可运行状态的 GL 命令在执行。为简化 UiThread 初始化,我们添加了
CanvasRenderer.uiThreadInit
,它会在对 render 进行任何调用前在 UiThread 上调用一次。我们还在CanvasComplication
中添加了onRendererCreated
,以便Renderer
和CanvasComplication
更轻松地共享状态。为清楚起见,我们已经将
Complication
重命名为ComplicationSlot
,并将complicationId
重命名为complicationSlotId
或complicationInstanceId
,具体取决于使用情况
API 变更
- 为清楚起见,我们已将
Complication
重命名为ComplicationSlot
,并将complicationId
重命名为complicationSlotId
或complicationInstanceId
,具体取决于使用情况。使用 Complication 的类已进行类似的重命名,例如,ComplicationsManager 现已更名为 ComplicationSlotsManager。(I4da44) - 在 GlesRenderer 中,
makeUiThreadContextCurrent
和makeBackgroundThreadContextCurrent
已替换为都接受Runnable
的runUiThreadGlCommands
和runBackgroundThreadGlCommands
。仅当您需要在 renderrunBackgroundThreadGlCommands
和onUiThreadGlSurfaceCreated
之外发出 GL 调用时,才需要这些函数。这是必需的,因为可能有多个 GlesRenderer,各自在同一进程中具有自己的上下文,并且可能来自不同的表盘。此外,现在针对共享的当前 GL 上下文进行了访问权限同步。(I04d59) - 我们添加了
CanvasRenderer.uiThreadInit
,它会在对 render 进行任何调用之前在 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)
- 修复了 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
,它将返回复杂功能 ID 与 DefaultComplicationProviderPolicy 和默认 ComplicationType 的映射。这比创建无头实例更快,因为它无需完全初始化表盘便可执行查询。
最后,复杂功能现在使用 CanvasComplicationFactory 进行构造,后者允许延迟构造 CanvasComplication 渲染程序。
API 变更
- 已将
@TargetApi
替换为@RequiresApi
。(I0184a、b/187447093、b/187447094) - 我们引入了
WatchFaceControlClient.getDefaultProviderPoliciesAndType
,它会返回复杂功能 ID 与 DefaultComplicationProviderPolicy 和默认 ComplicationType 的映射。在可能的情况下,使用快速路径可免于完全构造表盘。为此,我们不得不使用 createUserStyleSchema 和 createComplicationsManager 这两个新方法来更改 WatchFaceService API,这两个新方法的结果会传递到 createWatchFace 中。此外,Complication 现在使用 CanvasComplicationFactory 进行构造,后者允许延迟构造 CanvasComplication 渲染程序。(Iad6c1) - 我们从 SystemProviders 中移除了 MOST_RECENT_APP。(I3df00)
- ObservableWatchData 现在是一个密封的类。(Ic940d)
- 现在在界面线程渲染开始之前,会为每项复杂功能在后台线程中调用 CanvasComplicationFactory.create(通常为 I/O 密集型)。由于构造和渲染之间存在内存屏障,因此无需特殊的线程基元。(Ia18f2)
- 尽管所有的渲染都是在界面线程中完成,表盘的构造现在是在后台线程中完成的,为此,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 的返回值现在为 NonNull。(I41eb4)
版本 1.0.0-alpha14
2021 年 5 月 18 日
发布了 androidx.wear:wear-*:1.0.0-alpha14
。版本 1.0.0-alpha14 中包含这些提交内容。
新功能
EditorSession.openComplicationProviderChooser
现在返回 ChosenComplicationProvider,后者包含复杂功能 ID、ComplicationProviderInfo
和一个包含提供程序选择器返回的所有额外 extra 的 Bundle。- 此外,我们也在循序渐进地将代码迁移到 Kotlin,并且大多数表盘 API 现在都是用 Kotlin 定义的。
API 变更
- GlesRenderer 属性
eglContext
和eglDisplay
现在不可为 null。现在,任何 GL 错误均通过GlesRenderer.GlesException
而不是 RuntimeException 进行报告。(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 中包含这些提交内容。
新功能
表盘可以拥有除显示时间和复杂功能之外的其他重要视觉元素。为了针对这些元素提供屏幕阅读器支持,表盘现在可以通过渲染器的 additionalContentDescriptionLabels 属性指定无障碍功能 ContentDescriptionLabels。此外,为了便于控制 ContentDescriptionLabels 的排序,我们还为复杂功能添加了 accessibilityTraversalIndex。这可以通过 ComplicationsUserStyleSetting 进行修改。
为鼓励开发者仔细考虑屏幕阅读器,我们要求必须将
ShortTextComplicationData.Builder
、LongTextComplicationData.Builder
和RangedValueComplicationData.Builder
的contentDescription
字段传递到其构造函数中。如果将ComplicationText.EMPTY
传递到contentDescription
中,系统则会根据文本和标题自动生成contentDescription
。现在,如果表盘在初始化期间抛出异常,
WatchFaceControlClient.getOrCreateInteractiveWatchFaceClient
会抛出ServiceStartFailureException
。这样,您就可以更轻松地对表盘启动期间出现的问题做出诊断。
API 变更
- 我们添加了对于在 ComplicationProviderInfo 中使用 null 组件名称的支持,这是支持较低版本的 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 和类型参数封装到数据 ComplicationRequest 中。对应的监听器及其方法已分别重命名为 ComplicationRequestListener 和 ComplicationRequestListener.onComplicationData。(Iaf146)
- 我们从
ComplicationData
中移除了方法isActiveAt
,改为公开字段validTimeRange
。此方法调用可以替换为validTimeRange.contains
。(I65936) - 我们更改了 ComplicationProviderService.onComplicationActivated 方法的说明,以便接收 ComplicationType,而不是 int。(Idb5ff)
- 将 ProviderUpdateRequester 从 Java 迁移到了 Kotlin。(Ibce13)
- GlesRender.makeContextCurrent 现已公开。表盘代码可能需要在 render 和 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 Complications 和 Watchface 版本 1.0.0-alpha12
2021 年 4 月 21 日
发布了 androidx.wear:wear-*:1.0.0-alpha12
。版本 1.0.0-alpha12 中包含这些提交内容。
新功能
表盘编辑器需要突出显示表盘的组成部分,以帮助说明正在配置手表的哪个方面。我们扩展了 RenderParameters,以便支持突出显示样式和复杂功能。新增了一个可选 HighlightLayer,旨在采用 α 透明度为表盘顶部加边(屏幕截图 API 可以为您完成此加边,或自行提供 HighlightLayer 以最大限度提高灵活性)。例如,假设您有一个样式可让您配置手表指针的外观,您在其 renderHighlightLayer 中的渲染程序可以围绕指针绘制轮廓。
为了鼓励支持复杂功能提供程序以提供无障碍功能,我们将 PhotoImageComplicationData.Builder、MonochromaticImageComplicationData.Builder 和 SmallImageComplicationData.Builder 的 contentDescription 字段设为必需的构造函数参数。添加了 ComplicationTapFilter 和 Complication.createEdgeComplicationBuilder,以支持边缘复杂功能(围绕屏幕边缘绘制)。边缘复杂功能的渲染和点击测试留给表盘完成。配套编辑器不支持边缘点击测试。
API 变更
- 向 SystemProviders 中的常量添加了
PROVIDER_
前缀。(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 属性。此外,移除了 toBooleanOption、toCoplicationOptions、toListOption 等UserStyleSetting.Option
函数。(I52899) - 向表盘可用的设备属性添加了下巴尺寸。(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[]>
。为方便起见,已向公共 API 中添加UserStyleData
类,并且现在会被 wear-watchface-client 和 wear-watchface-editor 使用。此外,CustomValueUserStyleSetting.CustomValueOption.value 现在是byte[]
,而不是String
。(Iaa103) UserStyleSetting
和UserStyleSetting.Option
现在分别使用UserStyleSetting.Id
和UserStyleSetting.Option.Id
来存储其 ID,而非使用字符串。(I63f72)InteractiveWatchFaceClient.SystemState
已重命名为WatchUiState
。(I6a4e0)InteractiveWatchFaceWcsClient
和InteractiveWatchFaceSysUiClient
已合并,因为难以说明责任划分 (Iff3fa)- 为清楚起见,已重命名层枚举值。
Layer#TOP_LAYER
现已改为Layer#COMPLICATIONS_OVERLAY
,Layer#BASE_LAYER
现已改为Layer#BASE
(Ia144e) UserStyleListener
已重命名为UserStyleChangeListener
(I18524)UserStyleRepository
已重命名为CurrentUserStyleRepository
(I6ea53)InteractiveWatchFaceWcsClient.updateInstance
已重命名为updateWatchfaceInstance
。(I321dc)- 已重命名 WatchFace TapType 事件,以与 MotionEvents/Compose 保持一致。(I0dfd0)
- takeWatchfaceScreenshot 已重命名为 renderWatchFaceToBitmap,takeComplicationScreenshot 已重命名为 renderComplicationToBitmap (Ie0697)
- 已移除 CanvasComplication 接口,取而代之的是开放类 CanvasComplicationDrawable。(I1f81f)
- 已从公共 API 中移除
WatcfaceControlServiceFactory
。(I1f8d3) - 已将
CanvasComplication.setData
重命名为CanvasComplication.loadData
。(If1239) ComplicationsManager.bringAttentionToComplication
已重命名为displayPressedAnimation
。(Ic4297)WatchFaceService.createWatchFace
现在有了@UiThread
注解。(Ib54c2)- 更改了一个 CanvasComplicationDrawable 参数的名称,以修复一个 bug。(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)- 为与
ComplicationsManager.displayPressedAnimation
保持一致,已将InteractiveWatchFaceWcsClient.bringAttentionToComplication
重命名为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 级别及更高版本,且今后不可为 null。(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 时创建开放式 gl 对象(例如纹理),因为 GlesRenderer 现在需要显式调用 initOpenGLContext(可在 createWatchFace 内完成)。
API 变更
IdAndComplicationData
不太好用,已从公共 API 中移除。使用过它的类和接口已进行重构。(I4c928)- 已将
ReferenceTime
替换为CountUpTimeReference
和CountDownTimeReference
这两个看起来更一目了然的函数。(Ib66c6) - 添加了一些缺失的
@Px
和@ColorInt
注解。(I9bbc3) Complication.complicationConfigExtras
现在不可为 null,默认为Bundle.EMPTY
。(Iad04f)GlesRenderer
现在要求您在构建后调用initOpenGLContext
。此函数过去仅在内部使用,但现已在公共 API 上提供,以允许在 createWatchFace 内尽早调用 GL。(I726c2)- 移除了应该已不再需要的
Complication.setRenderer
。(Ie992f) Complicaiton.setComplicationBounds
已从公共 API 中移除。如果您需要调整某个复杂功能的位置,可以通过ComplicationsUserStyleSetting
实现。(Ibd9e5)ComplicationsManager.TapCallback.onComplicationSingleTapped
已重命名为onComplicationTapped
。(I3a55c)ComplicationOutlineRenderer.drawComplicationSelectOutline
已重命名为drawComplicationOutline
。(I14b88)
版本 1.0.0-alpha09
2021 年 3 月 10 日
发布了 androidx.wear:wear-complications-*:1.0.0-alpha09
和 androidx.wear:wear-watchface-*:1.0.0-alpha09
。版本 1.0.0-alpha09 中包含这些提交内容。
新功能
- WCS/SysUI 主机和表盘之间的接口已发生变化。现在,编辑器可以确定样式更改将启用还是停用复杂功能(启用表示为 initiallyEnabled 加上 ComplicationsUserStyleSetting 的任何替换状态)。此外,
EditorService.closeEditor
还允许 SysUI 根据需要远程关闭表盘编辑器。 - 在
InteractiveWatchFaceWcsClient.setUserStyle
的基础上添加了一个更强大的命令updateInstance
,后者可以更改实例 ID、设置样式,还可一次性清除复杂功能。
API 变更
- 已将 TraceEvent 添加到表盘库中。(I1a141)
ComplicationState
现在具有一个新属性initiallyEnabled
,该属性可用于预测切换样式的效果。(I8c905)- 我们已将
InteractiveWatchFaceWcsClient.setUserStyle
替换为一个更强大的命令updateInstance
,该命令可以更改实例 ID、设置样式,还可清除复杂功能。(Ife6f6) - WatchFaceClient 屏幕截图 API 不再压缩屏幕截图(因为处理速度太慢),而是把后处理工作留给调用方来完成。(Id35af)
- 现在可以通过
EditorService.closeEditor
远程关闭表盘编辑器。(Ic5aa4) - 添加了是否可为 null 性注解 (Ic16ed)
版本 1.0.0-alpha08
2021 年 2 月 24 日
发布了 androidx.wear:wear-*:1.0.0-alpha08
。版本 1.0.0-alpha08 中包含这些提交内容。
新功能
- 有些表盘围绕一个或多个特定复杂功能进行设计,为支持此特性,我们添加了 Complication.Builder#setFixedComplicationProvider,若将其值设为 true,则可以阻止用户更改该槽中的复杂功能。
- 表盘库优先采用 Kotlin 并使用协程(例如挂起函数)。对于 Java 用户,我们提供了 ListenableFuture 封装容器,以改进以下库中的互操作性:wear/wear-watchface-guava、wear/wear-watchface-client-guava 和 wear/wear-watchface-editor-guava。
API 变更
- 我们移除了对点按两次复杂功能即可启动提供程序选择器的支持,该功能在表盘中并不常见,还会使 SysUI 的实现复杂化。(I3ef24)
- 如果 Binder 意外关闭,ProviderInfoRetriever 方法可能会抛出 ServiceDisconnectedException。(Ib2cc4)
- 从 Android 11 开始,对于何时可以运行 ProviderChooser 会有一些限制。此外,我们希望使用新的
wear-watchface-editor
构建编辑器,以便从公共 API 中移除 ComplicationHelperActivity。(Ib19c1) - 移除了 ComplicationText 静态方法以支持构建器。(Ibe399)
- 我们针对各种表盘库挂起方法引入了 guava ListenableFuture 封装容器。(I16b2c)
- 为了使 API 更加清晰,我们为 RenderParameters 添加了一个无需色调的辅助构造函数,以便与
LayerMode.DRAW_OUTLINED
以外的 LayerMode 配合使用。(I497ea) - 以前,ListUserStyleSetting 与其他构造函数不同,因为它具有默认参数。现在,所有 StyleSetting 子类构造函数均会优先采用默认值。(I9dbfd)
- CanvasComplication 已重构为使用隐藏方法,从而更方便实现子类 (I5b321)
- 我们重构了 EditorResult,以便使用新的 EditorService,并使用
EditorSession.broadcastState()
将更新流式传输到观测程序(通常为 SysUI)。(Ic4370) - 有些表盘围绕特定的复杂功能而构建,作为表盘的重要组成部分,其中提供程序是用户不可配置的。为了支持这一点,我们添加了
Complication.Builder#setFixedComplicationProvider
。(I4509e) - EditorRequest 现在用于指定软件包名称而不是 ComponentName,因为 SysUI 不方便用它来查找编辑器的类名称,而且实际上我们只需要软件包名称。(Ib6814)
版本 1.0.0-alpha07
2021 年 2 月 10 日
发布了 androidx.wear:wear-*:1.0.0-alpha07
。版本 1.0.0-alpha07 中包含这些提交内容。
新功能
- WatchFaceService.createWatchFace 现在是一个挂起函数,这意味着表盘在等待 IO 时不再需要阻塞界面线程。wear-watchface-editor 和 wear-complications-data 也与之类似
API 变更
- 移除了 PhotoImage 类并直接使用 Icon。(I8a70b)
- 公开了 ComplicationData 的 validTimeRange。(I91366)
- 进一步明确了图片类属性。(I81700)
- wear-watchface-editor 和 wear-complications-data 已重构为使用挂起函数,而不是协程。Rx java 和未来的 compat 封装容器也会进行如此更改。(If3c5f)
- 现在,如果 requestPreviewComplicationData 因连接问题或缺少 API 支持而无法返回预览数据,ProviderInfoRetriever 会抛出 PreviewNotAvailableException。(I4964d)
- WatchFaceControlService::createWatchFaceControlClient 现在是一个挂起的函数,而 getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClient 现在称为 getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClientAsync 并会返回
Deferred<InteractiveWatchFaceWcsClient>
。Rx java 和未来的 compat 封装容器也会如此。(I5d461) - 已将
CATEGORY_PROVIDER_CONFIG_ACTION
重命名为CATEGORY_PROVIDER_CONFIG
。(I7c068) - 请注意,createOnWatchEditingSession 现在是一个挂起的函数,因为有时,表盘主题在编辑器 Activity 启动后不久才能使用。(Ida9aa)
- WatchFaceService.createWatchFace 现在是一个允许异步初始化的挂起函数,而之前,您必须阻塞主线程。(If076a)
- UserStyle 现在具有一个数组运算符,我们已将类型转换帮助程序添加到 UserStyle.Option 中。(I35036)
- 我们修复了 UserStyle 有线格式会导致部分不稳定的隐藏 API 发生改变的编组 bug。(I8be09)
- 我们添加了 CustomValueUserStyleSetting,可让您在 UserStyle 中存储特定于应用的单个字符串。默认表盘主题编辑器会忽略此值。(Ic04d2)
- 对于我们无法升级的 Android WearOS R 及更低版本,InstanceID 未在 Intent extra 中传递。为了解决这一问题,我们现在允许 InstancID 为 null。(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,该 intent 会使用新的 EditorSession 类来获取 WatchFace 详细信息,并通过 Activity.setWatchRequestResult 记录结果。为了支持此功能,我们添加了 ProviderInfoRetriever.requestPreviewComplicationData,使表盘编辑器能够请求预览 ComplicationData。预览 ComplicationData 的好处在于,它与实时数据不同,您不必担心在呈现编辑器时显示权限对话框(请注意,如果用户选择的提供程序带有权限,系统仍会提示他们授予权限)。
API 变更
- ComplicationProviderInfo 现在包含提供程序的 ComponentName 字段。稍后,我们会向 WearOS 添加对该字段的支持,同时会将该字段设为 null。(Id8fc4)
- 添加了 ProviderInfoRetriever.requestPreviewComplicationData,该类可使表盘编辑器能够请求预览 ComplicationData。这很实用,因为实时复杂功能可能需要权限,而您现在可以针对未处于活跃状态的复杂功能显示预览数据。(I2e1df)
- ComplicationManager 现在是 WatchFace 构造函数的可选参数。为此,已对相应参数进行了重新排序。(I66c76)
- 向复杂功能添加了一个可选的 Bundle。如果设置了该 Bundle,它会合并到发送来启动提供程序选择器 Activity 的 intent 中。(Ifd4ad)
- 添加了一个新的
wear-watchface-editor
库,用于支持表盘和 SysUi 托管的编辑器。SysUI 将通过发送 intent 来启动这些编辑器。表盘 Activity 服务可以使用新的 EditorSession 类来获取 WatchFace 详细信息,并通过 Activity.setWatchRequestResult 记录结果。(I2110d) - LayerMode.DRAW_HIGHLIGHTED 现在称为 LayerMode.DRAW_OUTLINED,而 RenderParameters.highlightComplicationId 现在称为 RenderParameters.selectedComplicationId。RenderParameters.selectedComplicationId 除了绘制轮廓外,还会突出显示指定的复杂功能。(I90a40)
- 以后,如果 WatchFaceControlClient.getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClient 服务在等待创建表盘主题时终止,可以通过 ServiceStartFailureException 进行解决。(I0f509)
- EditorSession.complicationPreviewData 现在是 ListenableFuture,因为提取此数据是一个异步过程。(Iead9d)
bug 修复
- 我们即将从 complicationBounds 以及处于启用状态的 ComplicationOverlay 中移除未使用的字段。(I17b71)
版本 1.0.0-alpha05
2021 年 1 月 13 日
发布了 androidx.wear:wear-*:1.0.0-alpha05
。版本 1.0.0-alpha05 中包含这些提交内容。
新功能
表盘通常支持许多复杂功能配置,这些配置显示的复杂功能数量不等。为了简化其设置,我们现在通过对构建器调用 setEnabled(false) 来支持最初停用的复杂功能。日后可以通过 ComplicationsUserStyleSetting 启用这些复杂功能。
API 变更
- ComplicationHelperActivity 现在接受
Collection<ComplicationType>
,不再接受整数数组,这样更易于使用。(I1f13d) ProviderInfoRetriever.retrieveProviderInfo
现在会正确返回ListenableFuture<ProviderInfo[]>
。(If2710)- 现在,您可以通过对构建器调用 setEnabled(false) 来创建最初停用的复杂功能。(Idaa53)
- WatchFaceState 现在添加了一个仅适用于无头实例的 isHeadless 属性。(Ifa900)
- ComplicationDrawable 现在选择性地支持同步加载可绘制对象。这个类由屏幕截图 API 使用。(I34d4a)
版本 1.0.0-alpha04
2020 年 12 月 16 日
发布了 androidx.wear:wear-*:1.0.0-alpha04
。版本 1.0.0-alpha04 中包含这些提交内容。
新功能
- 现在,Wear 表盘主题库支持按类型设置边界。例如,您可以切换为对 ComplicationType.LONG_TEXT 使用宽边界框,而对其他类型使用较细的边界框。
API 变更
- 复杂功能现在使用 ComplicationBounds,该类封装了一个
Map<ComplicationType, RectF>
来支持按复杂功能类型定义尺寸。(I1ebe7) - 现在,您可以通过 RenderParameters 指定要在屏幕截图中使用的突出显示色调。(Iff42b)
- 除了边界外,您现在必须使用 ComplicationsUserStyleSetting 修改复杂功能,这是为了确保操作系统保持同步。(I8dc5d)
- Renderer 现在是一个密封的类。这意味着 CanvasRenderer 和 GlesRenderer 现在是 Renderer 的内部类。(Iab5d4、b/173803230)
- CanvasComplicationDrawable.drawHighlight 已重命名为 drawOutline。ObservableWatchData 现在添加了几个缺少的 UiThread 注解。ScreenState 现已从 WatchState 中完全移除。(If1393)
- 现在,wear-watchface 的最低 API 级别为 25。请注意,支持硬件画布需要 API 级别 26 或更高级别。(Ic9bbd)
- InteractiveWatchFaceWcsClient 现在有一个 getComplicationIdAt 辅助程序。(I05811)
- wear-watchface-client 的 API 级别已降至 25,不过屏幕截图 API 需要 API 级别 27。(Id31c2)
bug 修复
- 现在,我们在 ComplicationState 中提供复杂功能当前 ComplicationData 的 ComplicationType。(I9b390)
- InteractiveWatchFaceWcs 现在有一个 `bringAttentionToComplication 方法,用于短暂突出显示指定的复杂功能。(I6d31c)
InteractiveWatchFaceWcsClient#setUserStyle
现在有一个接受 Map<string, string=""> 的重载,因此,构造 UserStyle 有可能不需要额外的 IPC 往返。(I24eec)</string,>
版本 1.0.0-alpha03
2020 年 12 月 2 日
发布了 androidx.wear:wear-*:1.0.0-alpha03
。版本 1.0.0-alpha03 中包含这些提交内容。
新功能
Complication 类现在有一个 compicationData 属性,可以让表盘观察 ComplicationData 的更改。因此,可以根据复杂功能的类型更改其尺寸。
现在,可以通过分配到 Renderer.interactiveDrawModeUpdateDelayMillis 来支持可变帧速率。因此,对于每秒运行一次简短动画的表盘,可以通过在没有动画时进入休眠状态来显著节省电量。
API 变更
BACKGROUND_IMAGE
已连同相关类一起重命名为PHOTO_IMAGE
。这种复杂功能并非专门用于背景,因此更改了名称。(I995c6)- DefaultComplicationProviderPolicy 现在已使用 IntDef 进行正确注解。(I3b431)
- 隐藏的 TimeDependentText 类不再通过 ContentDescriptionLabel 提供,而是添加一个访问函数在指定时间获取文本。(Ica692)
- ObservableWatchData 的构造函数现在是内部函数。(I30121、b/173802666)
- Complication 现在具有可让表盘观察 ComplicationData 更改的 compicationData 属性。Complication 还新加了一个 isActiveAt 调用,可用于判断是否应在提供的日期时间呈现任何内容。(Ic0e2a)
- 空
SharedMemoryImage
已不在公共 API 中。(I7ee17) WatchFace.overridePreviewReferenceTimeMillis
现在添加了一个 IntRange 注解,并且 getter 和 setter 具有一致的名称。(Ia5f78)- 为清楚起见,现在通过
Complication.createRoundRectComplicationBuilder
或Complication.createBackgroundComplicationBuilder
创建Complication.Builder
(I54063) - 添加了 WatchFace.TapListener,此接口可让 WatchFace 观察到复杂功能未使用的点按操作。(Ic2fe1、b/172721168)
- WatchFace 现在通过分配到
Renderer.interactiveDrawModeUpdateDelayMillis
来支持可变帧速率。这有助于在没有动画时进入休眠状态,从而延长电池续航时间。(I707c9) - WatchFace.Builder 已不再需要,invalidate() 和 interactiveUpdateRateMillis 已移至 Renderer。(I329ea)
- 为提高 Java 互操作性,针对 WatchState 中的布尔值属性重命名了 getter (I6d2f1)
- 为保持一致,已将 TapListener 重命名为 TapCallback,将 InvalidateCallback 重命名为 InvalidateListener。(I9414e)
- 为清楚起见,Wear 2.0 表盘样式选项已移至其自己的类中。WatchFace.Builder setter 现在具有对称的 WatchFace 类 getter。(Iefdfc)
- 添加了 InteractiveWatchFaceWcsClient 和
WatchFaceControlClient.getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClient
,用于获取现有实例,或者在连接壁纸服务并创建引擎后创建实例。(Id666e) - WatchFaceControlClient 现在是一个允许测试对其进行模拟的接口。(I875d9)
- 为了更方便进行测试,HeadlessWatchFaceClient、InteractiveWatchFaceSysUiClientImpl 和 InteractiveWatchFaceWcsClient 现在是接口。(I7cdc3)
- 向
wear-watchface-complications-rendering
中的方法添加了注解 (I0d65c)
bug 修复
- 从复制
android.content.res.Configuration#isScreenRound()
的 DeviceConfig 中移除了屏幕形状 (Ifadf4) - 将
WatchFaceControlClient.getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClient
改为接受Map<String, String>
,不再接受UserStyle
,因为在不知道架构的情况下很难创建UserStyle
,而架构只能在创建客户端后获取。(Iea02a) - 修复了
InteractiveWatchFaceWcsClient
,以使用ComplicationState
而非传输格式。(Icb8a4) UserStyleSettings
现在是密封的类,因为表盘编辑器只能理解内置类。(I2d797)
版本 1.0.0-alpha02
2020 年 11 月 11 日
发布了 androidx.wear:wear-*:1.0.0-alpha02
。版本 1.0.0-alpha02 中包含这些提交内容。
API 变更
ComplicationDetails
现在称为ComplicationState
且已正确封装,同时穿戴式设备支持的用法@ComplicationData.ComplicationType
已迁移至 androidxComplicationType
。(I4dd36)- 向 RenderParameters 添加了一个可选的
highlightedComplicationId
参数,以便您请求突出显示屏幕截图中的单个复杂功能。(I66ce9) ComplicationProviderService
使用新样式的复杂功能 API 以实现一致性 (Id5aea)getPreviewReferenceTimeMillis
现在从DeviceConfig
获取参考时间。(I779fe)- 简化了 Renderer API Surface,可改为使用
SurfaceHolder.Callback
观察变更。(I210db) CanvasComplicationRenderer
并非从Renderer
扩展,为清楚起见,对其进行了重命名。(Ibe880)
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 的推荐做法是避免使用受保护的数据,因此我们重构了这个类,让其通过构造函数接收参数。(I61644)
- 为清楚起见,重命名了 setBackgroundComplication。(I96fe3)
- 为 ComplicationDrawable isHighlighted 及相关数据使用 Kotlin 属性 (I4dcc8)
- 我们添加了 Complication#invalidate(),用于替代 ComplicationRenderer.InvalidateCallback (I4f4c6)
- 这些 API 将在 WearableSupport 中废弃,并在此版本中移除。(Ib425c)
- 重命名了一些 WatchFace 构建器方法,以强调它们 Wear 2.0 遗留产物的性质。(Idb775)
- wear/wear-watchface 的第一个候选 Beta 版 API (Id3981)
- 第一个受到跟踪的 API 版本。(Ie9fe6)
- 正确隐藏 ComplicationDrawable.BorderStyle IntDef 并移至 ComplicationStyle,以实现一致性。(I27f7a)
- 为 ComplicationStyle 方法添加了缺失的注释 (I838fd)
- 此库没有公共 API Surface (I88e2b)
- 所有样式的 Category Option 类现均已正确设置为“final”。(Ib8323)
- 第一个受到跟踪的 API 版本。(I27c85)
bug 修复
- 更改了 ComplicationProviderService 以添加明确的 getComplicationPreviewData 方法。(I4905f)
- 针对 androidx 启用了 MissingGetterMatchingBuilder 的 API lint 检查(I4bbea、b/138602561)
- 重命名了 wear-complications-rendering。(Ifea02)
- 样式类别显示名现为 CharSequence (I28990)
- 将“Override”替换为“Overlay”,以符合当前主题与样式的命名惯例。(I4fde9)
- 为清楚起见,重命名了 UserStyle#getOptions。(I695b6)
版本 1.2.0
版本 1.2.0
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 widget,也可以是实现其
ArcLayout.Widget
接口的“曲线”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,旨在用于 activity 内,负责处理返回按钮关闭和/或滑动关闭。至少必须添加一个监听器,以对关闭操作执行操作。监听器通常会从当前 activity 中移除所属视图或 fragment。提供了 setSwipeDismissible(boolean) 和 setBackButtonDismissible(boolean),用于直接控制这些功能。此新布局旨在替换现有的 SwipeDismissFrameLayout。
在 AmbientModeSupport 类中添加了相关支持,允许在设备退出氛围模式时指示可“自动恢复”activity。此功能以前由在 WearableSupportLibrary 中已废弃的 WearableActivity 类提供。(I336ab)
从穿戴式设备支持库迁移了 WearableCalendarContract 类。此 API 会提供通过 CalendarContract 获取的数据的子集,但会自动同步到穿戴式设备。(I6f2d7)
在
androidx.wear.utils
中添加了一个新的 APIWearTypeHelper
,用于确定指定的 Wear 设备是否面向中国。(Ib01a9)在
androidx.wear.widget.ConfirmationOverlay
中新增了一些无障碍功能,这些功能会在动画说明设置完毕后读出消息。(I524dd)修复了在未提供消息时导致 ConfirmationActivity 崩溃的 bug。(Ie6055)
修复了以下 bug:水平滚动 RecyclerView 会导致
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 崩溃的 bug。(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 修复
- 修复了以下 bug:水平滚动 RecyclerView 会导致
WearableDrawerLayout
扫视所有互动。(I24c7f)
版本 1.2.0-alpha10
2021 年 6 月 2 日
发布了 androidx.wear:wear:1.2.0-alpha10
。版本 1.2.0-alpha10 中包含这些提交内容。
新功能
- Alpha10 对 CurvedText 和 ArcLayout 进行了改进,能更好地支持无障碍功能,并且还对 DismissibleFrameLayout 中的一些方法名称稍作调整,进行了重命名,以帮助阐明该 API。
API 变更
- 我们重命名了
DismissibleFrameLayout
中的以下方法 (Ib195e):Callback#onDismissed
->Callback#onDismissedFinished
isSwipeDismissible
->isDismissableBySwipe
isBackButtonDismissible
->isDismissableByBackButton
- 我们已将以下方法定为最终方法 (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 变更
- 将 Ongoing Activities 库迁移到新的子库:wear-ongoing。之前位于 androidx.wear.ongoingactivities 中的类现在位于 androidx.wear.ongoing 软件包中 (I7c029)
- 将 WearableCalendarContract 类从穿戴式设备支持库迁移到 AndroidX。此 API 会提供通过 CalendarContract 获取的数据的子集,但会自动同步到穿戴式设备。(I6f2d7)
bug 修复
- 默认情况下,在可关闭的 FrameLayout 中停用返回按钮关闭功能,因为滑动关闭仍然是在穿戴式设备上返回全屏的主要方式 (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
)。这简化了弧线布局与曲线文本之间的协定,因为在默认情况下,曲线文本绘制时会在顶部 x 轴居中,而父弧线布局可以将其旋转到所需的位置。(I105ff)
版本 1.2.0-alpha03
2020 年 12 月 2 日
发布了 androidx.wear:wear:1.2.0-alpha03
。版本 1.2.0-alpha03 中包含这些提交内容。
新功能
新增布局容器 DismissibleFrameLayout,旨在用于 activity 内,负责处理返回按钮关闭和/或滑动关闭。至少必须添加一个监听器,以对关闭操作执行操作。监听器通常会从当前 activity 中移除所属视图或 fragment。提供了 setSwipeDismissible(boolean) 和 setBackButtonDismissible(boolean),用于直接控制这些功能。此新布局旨在替换现有的 SwipeDismissFrameLayout。
曲线 widget 现在可以处理触摸事件。WearArcLayout 内的普通 widget 将接收所有触摸事件,映射到其坐标空间。WearCurvedTextView(无论是否在 WearArcLayout 内)可以设置 onClick 和 onLongClick 处理程序。
Ongoing Activities 类现在是 VersionedParcelable,而不使用自定义的序列化/反序列化。现在需要静态图标和触摸 intent。
API 变更
- WearCurvedTextView 的属性“sweepDegrees”已分成 minSweepDegrees 和 maxSweepDegrees,为此微件提供更灵活的布局。
版本 1.2.0-alpha02
2020 年 11 月 11 日
发布了 androidx.wear:wear:1.2.0-alpha02
。版本 1.2.0-alpha02 中包含这些提交内容。
此版本首次添加了新的“Ongoing Activities API”。开发者可以使用此 API 指示一项长时间的活动(例如,健身运动或媒体播放)正在持续进行中。借助此 API,开发者可以提供周期性状态更新(例如,“跑步距离和时间”和“当前播放的曲目”),以显示在表盘上或应用启动器中。此功能的适用对象为日后启用“正在进行的活动”功能的设备。
API 变更
- 新的 Ongoing Activities API,这在“不受支持的设备”上是一项空操作。(I69a31)
版本 1.2.0-alpha01
2020 年 10 月 28 日
发布了 androidx.wear:wear:1.2.0-alpha01
。版本 1.2.0-alpha01 中包含这些提交内容。
新功能
- 添加了 WearCurvedTextView 组件,以便沿着视图中可内切的最大圆圈的弧线轻松显示曲线文字。用法示例:
<androidx.wear.widget.WearCurvedTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="example curved text"
app:anchorAngleDegrees="180"
app:anchorPosition="center"
app:clockwise="false"
style="@android:style/TextAppearance.Large"
/>
- 添加了 WearArcLayout 容器,用于按顺时针或逆时针方向在圆弧上逐个布置其子元素。其子级可以是标准 Android widget,也可以是实现其 ArcLayoutWidget 接口的“曲线”widget。用法示例:
<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
类,可用于将特定于 Wear 的 extra 添加到 android.app.RemoteInput。(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。然后,这可用于在可自定义 activity 中请求用户的输入。
版本 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 修复
- 修复了导致 RemoteInput intent 被拒绝的 bug,其中此 intent 通过
RemoteInputHelper.putRemoteInputsExtra
向自己添加RemoteInput
。
版本 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 变更
- 用于获取或放置表示标题、取消、确认和处理中标签的 extra 的
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 类从穿戴式设备支持库迁移到 AndroidX。迁移的类已重命名为 RemoteInputIntentHelper,该类提供辅助函数,用于通过启动 intent 来支持遥控器输入。(I47cee)
Wear-Input 1.0.0
版本 1.0.0
2020 年 12 月 2 日
发布了 androidx.wear:wear-input:1.0.0
和 androidx.wear:wear-input-testing:1.0.0
。版本 1.0.0 中包含这些提交内容。
此版本与 1.0.0-rc01
完全相同。
1.0.0 的主要功能
将 WearableButtons 功能从穿戴式设备支持库迁移到 Jetpack。
添加了
androidx.wear.input.test.TestWearableButtonsProvider
,它实现了androidx.wear.input.WearableButtonsProvider
,以便协助测试使用androidx.wear:wear-input
库开发的应用。
版本 1.0.0-rc01
2020 年 11 月 11 日
发布了 androidx.wear:wear-input:1.0.0-rc01
和 androidx.wear:wear-input-testing:1.0.0-rc01
。版本 1.0.0-rc01 中包含这些提交内容。
此版本与 1.0.0-beta01
完全相同。
版本 1.0.0-beta01
2020 年 10 月 28 日
发布了 androidx.wear:wear-input:1.0.0-beta01
和 androidx.wear:wear-input-testing:1.0.0-beta01
,这两个版本与 1.1.0-alpha01
相比没有变化。版本 1.0.0-beta01 中包含这些提交内容。
Wear-Input-Testing 版本 1.0.0-alpha01
2020 年 10 月 14 日
发布了 androidx.wear:wear-input-testing:1.0.0-alpha01
。版本 1.0.0-alpha01 中包含这些提交内容。
API 变更
- 添加了
androidx.wear.input.test.TestWearableButtonsProvider
,它实现了androidx.wear.input.WearableButtonsProvider
,以便协助测试使用androidx.wear:wear-input
库开发的应用。(I0ed0c)
Wear-Input 版本 1.0.0-alpha01
2020 年 9 月 2 日
发布了 androidx.wear:wear-input:1.0.0-alpha01
。版本 1.0.0-alpha01 中包含这些提交内容。
新功能
将 WearableButtons 功能从穿戴式设备支持库迁移到 Jetpack。在下一个 Jetpack 版本中,androidx.wear:wear-input-testing
库将提供更多测试支持。
版本 1.1.0
版本 1.1.0
2020 年 10 月 14 日
发布了 androidx.wear:wear:1.1.0
。版本 1.1.0 中包含这些提交内容。
自 1.0.0 以来的重要变更
- 为
BoxInsetLayout
的 boxedEdges 属性(现为layout_BoxedEdges
)添加了layout_
前缀,以便遵循 Android 命名惯例。这将消除 Android Studio 中与这些属性有关的 linter 错误。(I4272f) - 向
ConfirmationActivity
添加了可选的EXTRA_ANIMATION_DURATION_MILLIS
,让您可以控制确认对话框显示的时长。(adb83ce、b/143356547) - 更新了
WearableActionDrawView
,让操作抽屉的膨胀时间延迟到抽屉栏首次打开的时侯。(I01026、b/163870541)
版本 1.1.0-rc03
2020 年 9 月 2 日
发布了 androidx.wear:wear:1.1.0-rc03
。版本 1.1.0-rc03 中包含这些提交内容。
bug 修复
- 解决了操作抽屉在打开时不显示内容的问题。(I01026、b/163870541)
版本 1.1.0-rc02
2020 年 6 月 24 日
发布了 androidx.wear:wear:1.1.0-rc02
。版本 1.1.0-rc02 中包含这些提交内容。
bug 修复
- 为
BoxInsetLayout
的 boxedEdges 属性(现为layout_boxedEdges
)添加了layout_
前缀,以便遵循 Android 命名惯例。这将消除 Android Studio 中与这些属性有关的 linter 错误。
版本 1.1.0-rc01
2020 年 5 月 14 日
发布了 androidx.wear:wear:1.1.0-rc01
,该版本与 .1.0-beta01
相比没有变化。版本 1.1.0-rc01 中包含这些提交内容。
版本 1.1.0-beta01
2020 年 4 月 29 日
发布了 androidx.wear:wear:1.1.0-beta01
,该版本与 androidx.wear:wear:1.1.0-alpha01
相比没有变化。版本 1.3.0-beta01 中包含这些提交内容。
版本 1.1.0-alpha01
2020 年 4 月 15 日
发布了 androidx.wear:wear:1.1.0-alpha01
。版本 1.1.0-alpha01 中包含这些提交内容。
API 变更
- 向
ConfirmationActivity
添加了可选的EXTRA_ANIMATION_DURATION_MILLIS
,让您可以控制确认对话框显示的时长。(adb83ce、134523c、b/143356547)
bug 修复
- 更新了
WearableActionDrawView
,让操作抽屉的膨胀时间延迟到抽屉栏首次打开的时侯。(5cd32f7)