可穿戴设备
androidx.wear.activity
androidx.wear.ambient
androidx.wear.input
androidx.wear.utils
androidx.wear.widget
androidx.wear.widget.drawer
(请参阅所有可穿戴设备软件包的参考文档)
此表列出了 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.0.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.0.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 兼容性检查。客户端可以使用此静态辅助类和提供的 method (#isApiVersionAtLeast(VERSION)
) 来检查兼容性。
Wear Tooling 预览版 1.0
版本 1.0.0
2023 年 11 月 29 日
androidx.wear:wear-tooling-preview:1.0.0
已发布。版本 1.0.0 包含这些提交。
1.0.0 中的功能
- 添加
WearDevices
以列出可用于 UI 预览的有效可穿戴设备。
版本 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
以列出可用于 UI 预览的有效可穿戴设备 (Ib036e)
Wear 版本 1.4
版本 1.4.0-alpha01
2023 年 11 月 15 日
androidx.wear:wear:1.4.0-alpha01
已发布。版本 1.4.0-alpha01 包含这些提交。
错误修复
- 当没有消息时,垂直居中
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
错误修复,避免意外地通过垂直轻扫关闭片段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
已移动为字段而不是 method。(I84b4f)
错误修复
- 添加空检查以处理在
SwipeToDismiss
中重置 alpha 和 translation 时父视图为空的情况。(Ib0ec7)
版本 1.3.0-alpha05
2023 年 4 月 19 日
androidx.wear:wear:1.3.0-alpha05
已发布。版本 1.3.0-alpha05 包含这些提交。
API 更改
- 将
AmbientModeSupport
迁移为使用LifecycleObserver
。弃用AmbientModeSupport
,转而使用新的生命周期感知类。(I1593b)
错误修复
- 更新
SwipeDismissTransitionHelper
背景遮罩方法以使用可绘制对象,而不是添加视图以修复使用FragmentContainerView
时的错误。(I851cd)
版本 1.3.0-alpha04
2023 年 1 月 25 日
androidx.wear:wear:1.3.0-alpha04
已发布。版本 1.3.0-alpha04 包含这些提交。
错误修复
- 我们已更新
SwipeDismissFrameLayout
中的动画,使其与 Wear 平台和 Wear Compose 实现保持一致。(I7261b)
版本 1.3.0-alpha03
2022 年 8 月 24 日
androidx.wear:wear:1.3.0-alpha03
已发布。版本 1.3.0-alpha03 包含这些提交。
新功能
ArcLayout
现在支持扩展权重,其工作方式类似于常规布局权重。这意味着您可以指定子元素的相对大小,而无需直接计算它们的 angle。我们还添加了一个尽力而为的MaxAngleDegrees
,在使用权重扩展子元素时会遵守此权重。例如,您可以将具有多个带权重子元素的弧线限制为 90 度,这也会尊重任何未扩展元素所占用的空间。
API 更改
- 我们在
ArcLayout.LayoutParams
中添加了权重,如果有多个 widget,则允许 widget 扩展以填充可用空间,它们对可用空间的份额与其权重成正比。此外,我们还添加了ArcLayout.setMaxAngleDegrees
,以便您可以例如将扩展限制在 90 度(注意,这不会影响任何固定大小的子 widget 的布局)。最后,ArcLayout.Widget
现在具有setSweepAngleDegrees
,这允许ArcLayout
通知具有非零权重的 Widget 其大小。(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)
错误修复
- 添加了 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 包含这些提交。
错误修复
ConfirmationOverlay
现在将图标向上推以适应较长的消息,而不会让消息进入设备的边框(或屏幕外)。(I54bff)
Wear 持续进行和交互版本 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 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
,它有助于检查启动远程 activity 的功能是否可用。(I107a9) - 我们更新了
RemoteActivityHelper
的构造函数,使其在 Java 中具有可选参数 compatible。(I75554)
版本 1.1.0-alpha01
2023 年 6 月 21 日
androidx.wear:wear-remote-interactions:1.1.0-alpha01
已发布。 版本 1.1.0-alpha01 包含以下提交。
错误修复
- 改进了
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 包含以下提交。
错误修复
OAuthRequest
中的redirectUrl
现在如果在给定的请求 URL 中未设置重定向 URL,则返回一个空字符串。 (I44242)
Wear-Phone-Interactions 版本 1.1.0-alpha02
2021 年 12 月 15 日
androidx.wear:wear-phone-interactions:1.1.0-alpha02
已发布。 版本 1.1.0-alpha02 包含以下提交。
错误修复
- 修复了
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 包含以下提交。
错误修复
- 修复了在尝试禁用桥接通知而没有
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 的主要功能
电话交互库包含用于可穿戴设备与手机交互的 API。它包含以下内容:
PhoneDeviceType
,提供帮助方法来确定当前手表配对的手机类型,仅供可穿戴设备使用。BridgingManager
、BridgingManagerService
和BridgingConfig
API,用于在运行时启用/禁用通知,并可以选择设置免受桥接模式影响的通知的标签。RemoteAuthClient
,提供对可穿戴设备上远程身份验证的支持,以及对添加 OAuth PKCE 扩展的支持。还提供了用于通信的其他处理程序和帮助程序类。
远程交互库包含用于可穿戴设备与手机之间交互的 API。它包含以下内容:
WatchFaceConfigIntentHelper
,提供帮助函数来指定手机上伴侣应用的表盘配置活动中的 ID 和组件名称。RemoteActivityHelper
类,可用于在其他设备上打开意图(例如,从手表到手机)。
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 包含以下提交。
错误修复
- 修复了使用 RemoteActivityHelper 时阻止 Google Play 服务中引发的错误传播到调用者的错误 (I60d60)
- 修复了如果没有任何连接的节点,或找不到请求的 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)
错误修复
- 在需要在 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 正在进行的活动 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 的错误。为 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)
错误修复
- 我们通过更详细的参数文档以及在可能的情况下使用属性,使身份验证 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 包含以下提交。
错误修复
- 记录了应在
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)
错误修复
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 中可用的 getter 相同。(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 Support Library 中为 RemoteIntent),可用于在其他设备上打开意图(例如,从手表到手机)。(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 Support Library 中的实现。
错误修复
- 修复了启动 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
更改为包含具有静态方法的伴生对象的类。用法保持不变。
错误修复
- 修复了
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 Support Library 迁移到 AndroidX。此迁移后的类重命名为 RemoteAuthClient,它支持可穿戴设备上的远程身份验证,以及添加 OAuth PKCE 扩展的支持。提供了用于通信的其他处理程序和辅助类。
- 现在,持续活动可以与具有标签的通知相关联,使用新的 OngoingActivity.Builder 构造函数。
API 更改
- 在持续活动库中添加了对通知标签的支持 (I653b4)
- 将 OAuthClient 从 Wear Support Library 迁移到 AndroidX,并添加对 OAuth PKCE 扩展的支持 (I3eaaa)
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 Support Library 迁移到 AndroidX,该类提供了一个 API 用于检查手机上是否可用 Play 商店。
错误修复
- 将 PlayStoreAvailability 类从 Wearable Support Library 迁移到 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 更改
- 添加了对更复杂状态的支持。它们由一个(或多个)模板和一系列部件组成,这些部件将用于填充模板的占位符。OngoingActivityStatus 现在有一个静态方法来创建只有一个部件(文本或计时器)的简单状态,以及一个 Builder 来创建更复杂的状态。(I1fe81)
- 将 BridgingManager 和 BridgingConfig 类从 Wear Support Library 迁移到 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 Support Library 迁移的类。(Id5180)
将 PhoneDeviceType 类从 Wearable Support Library 迁移到 AndroidX。迁移后的类重命名为 PhoneTypeHelper,它提供辅助方法来确定当前手表配对的手机类型,仅供可穿戴设备使用。(Ibd947)
创建一个新的支持库来包含支持可穿戴设备和手机之间交互的类。它最初包含从 Wearable Support Library 迁移的类。(I9deb4)
将 WatchFaceCompanion 类从 Wearable Support Library 迁移到 AndroidX。迁移后的类重命名为 WatchFaceConfigIntentHelper,它提供辅助函数来指定手机上伴侣应用中表盘配置活动的 ID 和组件名称,它还可用于在可穿戴设备上本地配置表盘。(Ia455f)
Wear 复杂功能和表盘 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 现在对 complicationSlotsState、ComplicationsPreviewData 和 ComplicationsDataSourceInfo 使用 kotlin StateFlows。(I761d9)
- EditorSession#userStyle 现在是
MutableStateFlow<UserStyle>
(I32ca9) - EditorSession.createOnWatchEditorSession 现在使用生命周期观察者,并在观察到 onDestroy 时自动关闭。此外,
createOnWatchEditorSession
现在只需要传入活动。相同的更改也已应用于 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 现在使用不可变的 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 架构的最大线缆大小施加限制。架构中的图标不得大于 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)
- 我们添加了一个重载的
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)- 我们已将
headlessDeviceConfig
添加到EditorRequest
中,如果非空,则此参数用于构造一个无头实例以支持 EditorSession,而不是对交互式实例进行操作。这允许为不是当前表的表盘调用编辑器。(I0a820) - 我们添加了一个实验性的
WatchFaceMetadataClient
,它允许有效检索静态表盘元数据,例如UserStyleSchema
和关于ComplicationSlots
的固定详细信息。(I6bfdf) - 我们已将
CanvasRenderer.uiThreadInit
重命名为 init。(I6fff9) - 我们添加了 PreviewScreenshotParams,这是 EditorRequest 的一个可选的新参数,它指示 EditorSession 在提交时使用这些参数拍摄预览屏幕截图。预览图像在
EditorState.previewImage
中公开。(Ic2c16)
错误修复
- 开发人员不再需要将 ComplicationHelperActivity 添加到自己的清单中。(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 命令 Runnable 正在执行。为了使 UiThread 初始化更容易,我们添加了
CanvasRenderer.uiThreadInit
,它在任何对 render 的调用之前在 UiThread 上调用一次。我们还将onRendererCreated
添加到CanvasComplication
中,这使得Renderer
和CanvasComplication
更容易共享状态。为了清晰起见,我们已将
Complication
重命名为ComplicationSlot
,并将complicationId
重命名为complicationSlotId
或complicationInstanceId
,具体取决于用法
API 更改
- 为了清晰起见,我们已将
Complication
重命名为ComplicationSlot
,并将complicationId
重命名为complicationSlotId
或complicationInstanceId
,具体取决于用法。使用 Complication 的类也已类似地重命名,例如 ComplicationsManager 现在称为 ComplicationSlotsManager。(I4da44) - 在 GlesRenderer 中,
makeUiThreadContextCurrent
和makeBackgroundThreadContextCurrent
已被runUiThreadGlCommands
和runBackgroundThreadGlCommands
替换,它们都接受一个Runnable
。如果您需要在 render 之外进行 GL 调用,则只需要这些函数,runBackgroundThreadGlCommands
和onUiThreadGlSurfaceCreated
。这是必需的,因为在同一进程中可能有多个 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 包含以下提交。
新功能
- 我们修复了与最近线程模型更改相关的一些错误,并解决了手表表盘编辑器中的其他问题。
错误修复
- 防止
onComplicationProviderChooserResult
中出现空指针异常 (b/189594557) - 修复了过时界面和 drawBlack 相关的问题 (b/189452267)
- 修复了访问
complicationsManager.watchState
时的竞争条件 (b/189457893) - 修复了后台线程生命周期错误 (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
,它返回一个从复杂功能 ID 到 DefaultComplicationProviderPolicies 的映射,以及默认的复杂功能类型。这比创建无头实例更快,因为它不需要完全初始化手表表盘来执行查询。
最后,复杂功能现在使用 CanvasComplicationFactory 进行构造,这允许延迟构造 CanvasComplication 渲染器。
API 更改
- 将
@TargetApi
替换为@RequiresApi
。 (I0184a,b/187447093,b/187447094) - 我们引入了
WatchFaceControlClient.getDefaultProviderPoliciesAndType
,它返回一个从复杂功能 ID 到 DefaultComplicationProviderPolicies 的映射,以及默认的复杂功能类型。在可能的情况下,使用快速路径来避免完全构造手表表盘。为了促进这一点,WatchFaceService API 必须更改,增加了两个新方法:createUserStyleSchema 和 createComplicationsManager,其结果传递给 createWatchFace。此外,复杂功能现在使用 CanvasComplicationFactory 进行构造,这允许延迟构造 CanvasComplication 渲染器。 (Iad6c1) - 我们已从 SystemProviders 中删除了 MOST_RECENT_APP。 (I3df00)
- ObservableWatchData 现在是一个密封类。 (Ic940d)
- CanvasComplicationFactory.create(通常与 IO 绑定)现在在每个复杂功能的后台线程上调用,然后开始 UI 线程渲染。构造和渲染之间存在内存屏障,因此不需要特殊的线程原语。 (Ia18f2)
- 手表表盘构造现在在后台线程上完成,尽管所有渲染都在 UI 线程上完成,GLESRenderer 支持两个链接的上下文以支持此功能。WatchFaceControlClient.createHeadlessWatchFaceClient 和 WatchFaceControlClient.getOrCreateInteractiveWatchFaceClient 可能会在 WatchFaceService.createWatchFace 完成之前解析。后续的 API 调用将阻塞,直到手表表盘初始化完成。 (Id9f41)
- EXPANSION_DP 和 STROKE_WIDTH_DP 不再在 api.txt 中可见。 (I54801)
- 我们已将 EditorSession.createOnWatchEditingSession 修改为在出现错误时抛出 TimeoutCancellationException,而不是发送空会话。此外,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
和一个包含提供程序选择器返回的任何其他额外数据的 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 复杂功能和手表表盘版本 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
字段设为必须传递到其构造函数中。如果为contentDescription
传递了ComplicationText.EMPTY
,则会根据文本和标题自动生成contentDescription
。WatchFaceControlClient.getOrCreateInteractiveWatchFaceClient
现在在手表表盘在初始化期间引发异常时抛出ServiceStartFailureException
,这使得在手表表盘启动期间诊断问题变得更加容易。
API 更改
- 我们添加了对在 ComplicationProviderInfo 中使用空组件名称的支持,这需要支持旧版本的 Wear OS。 (I744d2)
- 我们已将
androidx.wear.complications.SystemProviders
从 Java 迁移到 Kotlin。 (Ia1f8b) - 我们已从公共 API 中隐藏了 android.support.wearable.complications 中的所有类,并在需要时在 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 迁移到 Kotlin。 (Ibce13)
- GlesRender.makeContextCurrent 现在是公共的。手表表盘代码可能需要在渲染和 onGlContextCreated 之外进行 gl 调用,并且因为可能存在交互式上下文和无头上下文,因此有必要调用此方法。 (I8a43c)
- 如果手表表盘在初始化期间引发异常,则 WatchFaceControlClient.getOrCreateInteractiveWatchFaceClient 现在会抛出 ServiceStartFailureException。此外,如果 createWatchFace 耗时超过 6 秒,则 WatchFaceService 现在会抛出异常。 (I59b2f)
- 我们已删除了
GlesTextureComplication
未使用的 id 属性。 (I28958) - 手表表盘现在可以通过
Renderer
的 additionalContentDescriptionLabels 属性指定辅助功能 ContentDescriptionLabels。除了控制 ContentDescriptionLabels 的顺序外,还将 accessibilityTraversalIndex 添加到复杂功能中。这可以通过 ComplicationsUserStyleSetting 进行修改。 (Ib7362) - 扩展有关手表表盘中触摸事件处理的文档。 (Iaf31e)
错误修复
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 更改
- 在SystemProviders中,为常量添加了
PROVIDER_
前缀。(I1e773) - 我们已将
PhotoImageComplicationData.Builder
、MonochromaticImageComplicationData.Builder
和SmallImageComplicationData.Builder
的contentDescription
字段设置为必须的构造函数参数。(I9643a) ProviderInfoRetriever.requestPreviewComplicationData
已重命名为retrievePreviewComplicationData
。(I911ee)- 将
ComplicationProviderService
从Java迁移到Kotlin。(I849f2) - 方法
ComplicationProviderService.onBind
现在是final的(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) - 将下巴尺寸添加到设备属性中,这些属性可供表盘使用。(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)- 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参数的名称以修复错误。(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)
- 如果绑定器意外关闭,ProviderInfoRetriever 方法可能会抛出 ServiceDisconnectedException。(Ib2cc4)
- 从 Android 11 开始,对何时可以运行 ProviderChooser 有一些限制,此外,我们希望编辑器使用新的
wear-watchface-editor
构建,因此 ComplicationHelperActivity 将从公共 API 中移除。(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 时阻塞 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)
- 在 R 及更早版本的 Android WearOS 中,InstanceID 不会传递在 Intent 附加数据中,我们无法升级这些版本。为了支持这一点,我们现在允许 InstancID 为空。(Id8b78)
- EditorRequest 现在包含编辑器 ComponentName,该组件设置为 WatchFaceEditorContract.createIntent 中的组件 (I3cd06)
- 表盘 EditorResult 现在包含预览 ComplicationData,以允许调用方在编辑后拍摄表盘的屏幕截图。(I2c561)
错误修复
- 向 UserStyle、UserStyleSetting 和 UserStyleSchema 添加了 toString() 覆盖,这使得使用这些类更容易一些。(I9f5ec)
版本 1.0.0-alpha06
2021年1月27日
androidx.wear:wear-*:1.0.0-alpha06
已发布。 版本 1.0.0-alpha06 包含这些提交。
新功能
- 我们引入了一个新的库 wear/wear-watchface-editor,它允许表盘开发者和潜在的 OEM 构建样式和复杂功能编辑器。SysUI 将向表盘发送一个 Intent,该表盘将使用新的 EditorSession 类访问 WatchFace 详细信息,并通过 Activity.setWatchRequestResult 记录结果。为了支持这一点,我们添加了 ProviderInfoRetriever.requestPreviewComplicationData,它允许表盘编辑器请求预览 ComplicationData。预览 ComplicationData 的优势在于,与实时数据不同,您不必担心在渲染编辑器时显示权限对话框(请注意,如果用户选择具有权限的提供程序,他们仍将被提示授予权限)。
API 更改
- ComplicationProviderInfo 现在有一个提供程序 ComponentName 的字段,对该字段的支持将在稍后日期添加到 WearOS,在此期间,它将为 null。(Id8fc4)
- 我们添加了 ProviderInfoRetriever.requestPreviewComplicationData,允许手表表盘编辑器请求预览 ComplicationData。这很有用,因为实时复杂功能可能需要权限,并且您现在可以显示未激活的复杂功能的预览数据。(I2e1df)
- ComplicationManager 现在是 WatchFace 构造函数的一个可选参数,并且参数顺序已重新排列以允许此操作。(I66c76)
- 我们在 Complications 中添加了一个可选的 Bundle,如果设置了该 Bundle,则会将其与发送到启动提供程序选择器活动的 intent 合并。(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)
错误修复
- 我们正在从 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 更改
- Complications 现在使用 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 手表表盘的最低 API 级别现在为 25。请注意,硬件画布支持需要 API 级别 26 或更高版本。(Ic9bbd)
- InteractiveWatchFaceWcsClient 现在有一个 getComplicationIdAt 帮助程序。(I05811)
- Wear 手表表盘客户端的 API 级别已降至 25,但屏幕截图 API 需要 API 级别 27。(Id31c2)
错误修复
- 我们现在在 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 类现在具有一个 compicationData 属性,允许手表表盘观察 ComplicationData 更改。这使得可以根据复杂功能的类型更改复杂功能的尺寸。
现在通过分配给 Renderer.interactiveDrawModeUpdateDelayMillis 支持可变帧速率。对于每秒运行简短动画的手表表盘,这可以通过在不动画时进入睡眠状态来节省大量电量。
API 更改
BACKGROUND_IMAGE
已重命名为PHOTO_IMAGE
,以及相关类。此类型的复杂功能并非专用于背景,因此名称已更改。(I995c6)- DefaultComplicationProviderPolicy 使用 IntDefs 正确注释。(I3b431)
- 隐藏的 TimeDependentText 类不再通过 ContentDescriptionLabel 公开,而是添加了一个访问器以在指定时间获取文本。(Ica692)
- ObservableWatchData 的构造函数现在是内部的。(I30121,b/173802666)
- Complication 现在具有 compicationData,允许手表表盘观察 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)
- 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)
错误修复
- 从 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
的用法已迁移到 androidxComplicationType
。(I4dd36)- 在 RenderParameters 中添加了一个可选的
highlightedComplicationId
参数,允许您请求在屏幕截图中突出显示单个复杂功能。(I66ce9) ComplicationProviderService
使用新的复杂功能 API 以保持一致性(Id5aea)getPreviewReferenceTimeMillis
现在从DeviceConfig
获取参考时间。(I779fe)- 简化渲染器 API 表面,可以使用
SurfaceHolder.Callback
来观察变化。(I210db) CanvasComplicationRenderer
不再扩展自Renderer
,为了清晰起见对其进行了重命名。(Ibe880)
错误修复
androidx.wear:wear-watchface-client
的第一个版本(I1e35e)- 更改了
GlesTextureComplication#renderer
的名称以提高清晰度(Ib78f7) - 将
StyleCategory
重命名为StyleSetting
以提高清晰度(I488c7) - 添加
UserStyleSchema
以获得更简洁的 API(If36f8)
版本 1.0.0-alpha01
2020 年 10 月 28 日
androidx.wear:wear-complications-*:1.0.0-alpha01
和 androidx.wear:wear-watchface-*:1.0.0-alpha01
已发布。版本 1.0.0-alpha01 包含这些提交。
API 更改
- 删除了一些我们不打算在公共 API 中公开的内容。(I41669)
- 创建
androidx.wear:wear-complications-provider
库。(I77f1f) - ComplicationsUserStyleCategory 是配置复杂功能的新的推荐类别(I96909)
- 添加 wear-complication-data API。(I7c268)
- 具有布尔返回值的函数以“is”为前缀,而不是“get”(If36ff)
- API 建议避免使用 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)
错误修复
- 更改 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 类中添加了支持,用于指示活动在设备离开环境模式时可以“自动恢复”。此功能以前可在 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 包含这些提交。
错误修复
- 修复了导致 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)
错误修复
- 我们已为
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
,用于确定给定的可穿戴设备是否适用于中国。(Ib01a9)
版本 1.2.0-alpha11
2021 年 6 月 30 日
androidx.wear:wear:1.2.0-alpha11
已发布。版本 1.2.0-alpha11 包含这些提交。
错误修复
- 修复了水平滚动 RecyclerViews 导致
WearableDrawerLayout
在所有交互中都显示的问题。(I24c7f)
版本 1.2.0-alpha10
2021 年 6 月 2 日
androidx.wear:wear:1.2.0-alpha10
已发布。版本 1.2.0-alpha10 包含这些提交。
新功能
- Alpha10 提高了 Curved Text 和 ArcLayout 中的辅助功能支持。它还在 DismissibleFrameLayout 中添加了一些细微的重命名,以帮助阐明 API。
API 更改
- 我们已重命名
DismissibleFrameLayout
中的以下方法(Ib195e)Callback#onDismissed
->Callback#onDismissedFinished
isSwipeDismissible
->isDismissableBySwipe
isBackButtonDismissible
->isDismissableByBackButton
- 我们已将以下方法设置为 final(Ib195e)
setBackButtonDismissible
setSwipeDismissible
registerCallback
unregisterCallback
错误修复
版本 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 版本包含以下提交。
错误修复
- 修复了由于使用高度大于宽度的屏幕尺寸导致的 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 Support Library 迁移到 AndroidX。此 API 提供了通过 CalendarContract 可用的数据的子集,但会自动同步到可穿戴设备。 (I6f2d7)
错误修复
- 在 Dismissible FrameLayout 中默认禁用后退按钮关闭功能,因为滑动关闭仍然是可穿戴设备上返回全屏的主要方式 (Ic24e3)
- 修复了 WearArcLayout 上处理子元素可见性的一些问题 (Icf912)
1.2.0-alpha05 版本
2021年1月13日
androidx.wear:wear:1.2.0-alpha05
已发布。 1.2.0-alpha05 版本包含以下提交。
错误修复
- 更新 AmbientModeSupport 类的 javadoc,以提供示例代码段,更好地演示此类的通用用法。
1.2.0-alpha04 版本
2020年12月16日
androidx.wear:wear:1.2.0-alpha04
已发布。 1.2.0-alpha04 版本包含以下提交。
API 更改
- 在 AmbientModeSupport 类中添加了支持,用于指示活动在设备离开环境模式时可以“自动恢复”。此功能以前可在 WearableSupportLibrary 中已弃用的 WearableActivity 类中使用。(I336ab)
- 正在进行的活动
- 现在可以在创建 OngoingActivity 时设置类别,例如
OngoingActivitiy.Builder.getCategory(String)
- OngoingActivityData 现在包含构建 OngoingActivity 的时间戳 -
OngoingActivityData.getTimestamp()
- (I91cb4)
- 现在可以在创建 OngoingActivity 时设置类别,例如
- 通过将布局参数扩展为 MarginLayoutParams 来添加对设置 WearArcLayout 子元素边距的支持,即 WearArcLayout.LayoutParams 扩展 android.view.ViewGroup.MarginLayoutParams。 (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,它处理后退按钮关闭和/或滑动关闭,旨在在活动中使用。必须添加至少一个监听器来对关闭操作做出反应。监听器通常会从当前活动中移除包含的视图或片段。提供了 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 更改
- 将
disallowEmoji
重命名为setEmojisAllowed
在WearableRemoteInputExtender
中使用,以设置是否显示绘制表情符号的选项。 (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 意图。然后,可以使用它在可自定义的活动中请求用户的输入。
版本 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 版本包含以下提交。
错误修复
- 修复了导致通过
RemoteInputHelper.putRemoteInputsExtra
向其添加了RemoteInput
的 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 更改
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 Support Library 迁移到 AndroidX。迁移后的类重命名为 RemoteInputIntentHelper,它提供辅助函数以通过启动意图支持远程输入。 (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 Support Library 迁移到 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 以来主要更改
- 为
BoxInsetLayout
中的 boxedEdges 属性添加了layout_
前缀(现在为layout_BoxedEdges
),以符合 Android 命名约定。这将消除 Android Studio 中这些属性的 linter 错误。(I4272f) - 为
ConfirmationActivity
添加了可选的EXTRA_ANIMATION_DURATION_MILLIS
,以允许指定确认对话框显示的持续时间。(adb83ce,b/143356547) - 更新了
WearableActionDrawView
,使其延迟操作抽屉膨胀,直到第一次打开抽屉。(I01026,b/163870541)
版本 1.1.0-rc03
2020 年 9 月 2 日
androidx.wear:wear:1.1.0-rc03
已发布。 版本 1.1.0-rc03 包含这些提交。
错误修复
- 修复了操作抽屉打开时不显示内容的问题。(I01026,b/163870541)
版本 1.1.0-rc02
2020 年 6 月 24 日
androidx.wear:wear:1.1.0-rc02
已发布。 版本 1.1.0-rc02 包含这些提交。
错误修复
- 为
BoxInsetLayout
中的 boxedEdges 属性添加了layout_
前缀(现在为layout_boxedEdges
),以符合 Android 命名约定。这将消除 Android Studio 中这些属性的 linter 错误。
版本 1.1.0-rc01
2020 年 5 月 14 日
androidx.wear:wear:1.1.0-rc01
已发布,自 .1.0-beta01
以来没有任何更改。 版本 1.1.0-rc01 包含这些提交。
版本 1.1.0-beta01
2020 年 4 月 29 日
androidx.wear:wear:1.1.0-beta01
已发布,自 androidx.wear:wear:1.1.0-alpha01
以来没有任何更改。 版本 1.3.0-beta01 包含这些提交。
版本 1.1.0-alpha01
2020 年 4 月 15 日
androidx.wear:wear:1.1.0-alpha01
已发布。 版本 1.1.0-alpha01 包含这些提交。
API 更改
- 为
ConfirmationActivity
添加了可选的EXTRA_ANIMATION_DURATION_MILLIS
,以允许指定确认对话框显示的持续时间。(adb83ce,134523c,b/143356547)
错误修复
- 更新了
WearableActionDrawView
,使其延迟操作抽屉膨胀,直到第一次打开抽屉。(5cd32f7)