可穿戴设备
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-beta01 | - |
声明依赖项
要添加对 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 兼容性检查。客户端可以使用此静态帮助器类和提供的(#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
已移至字段而不是方法。(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
现在支持扩展权重,其工作方式类似于常规布局权重。这意味着您可以指定子元素的相对大小,而无需直接计算它们的角。我们还添加了一个尽力而为的MaxAngleDegrees
,在使用权重扩展子元素时会遵守该值。例如,您可以将带有几个带权重子元素的弧限制为 90 度,这也会遵守任何未扩展元素所占用的空间。
API 更改
- 我们已向
ArcLayout.LayoutParams
添加了权重,如果有多个小部件,则允许小部件扩展以填充可用空间,它们在可用空间中的份额与其权重成正比。此外,我们还添加了ArcLayout.setMaxAngleDegrees
,以便您可以例如将扩展限制在 90 度(注意,这不会影响任何固定大小的子小部件的布局)。最后,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-beta01
2024年7月24日
androidx.wear:wear-remote-interactions:1.1.0-beta01
发布。版本 1.1.0-beta01 包含 这些提交。Wear Remote Interactions 的 1.3.0-beta01 版本表明此库的版本已功能完整,并且 API 已锁定(除非标记为实验性)。
版本 1.1.0-alpha04
2024年1月10日
androidx.wear:wear-phone-interactions:1.1.0-alpha04
发布。 版本 1.1.0-alpha04 包含以下提交。
API 更改
- 我们添加了
RemoteAuthClient.isRemoteAuthAvailable
,它检查远程身份验证是否可用。(Ibc10c)
版本 1.1.0-alpha02
2024年1月10日
androidx.wear:wear-remote-interactions:1.1.0-alpha02
发布。 版本 1.1.0-alpha02 包含以下提交。
API 更改
- 我们添加了
RemoteActivityHelper.isRemoteActivityHelperAvailable
,它有助于检查启动远程活动的功能是否可用。(I107a9) - 我们已更新
RemoteActivityHelper
的构造函数,使其在 Java 中具有可选参数兼容性。(I75554)
版本 1.1.0-alpha01
2023年6月21日
androidx.wear:wear-remote-interactions:1.1.0-alpha01
发布。 版本 1.1.0-alpha01 包含以下提交。
错误修复
- 改进了
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 持续进行和交互版本 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
类,可用于在其他设备上打开 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 包含以下提交。
错误修复
- 修复了在使用 RemoteActivityHelper 时,阻止 Google Play 服务中引发的错误传播到调用者的错误 (I60d60)
- 修复了 RemoteActivityHelper 在没有连接节点或未找到请求的 nodeId 时,永远不会完成其 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 上的一些设置器现在接受 null 参数,以便为设置器和获取器提供对称性和一致性 (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
现在具有获取器,可直接检索通过 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 现在具有一套完整的获取器,与之前仅在 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
常量,使新库向后兼容可穿戴支持库中的实现。
错误修复
- 修复了启动 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 更改
- 在 Ongoing Activities 库中添加了对通知标签的支持(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 现在有一个静态方法来创建只有一个部件(文本或计时器)的简单状态,以及一个用于创建更复杂状态的构建器。(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 更改
将 Ongoing Activities 库迁移到一个新的子库: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
现在只需要传入 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 现在使用不可变的 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
中,如果非空,则此参数用于构造一个 headless 实例来支持 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
,它在任何渲染调用之前在 UiThread 上调用一次。我们还向CanvasComplication
添加了onRendererCreated
,这使得Renderer
和CanvasComplication
更容易共享状态。为了清晰起见,我们已将
Complication
重命名为ComplicationSlot
,并将complicationId
重命名为complicationSlotId
或complicationInstanceId
,具体取决于用法。
API 更改
- 为了清晰起见,我们已将
Complication
重命名为ComplicationSlot
,并将complicationId
重命名为complicationSlotId
或complicationInstanceId
,具体取决于用法。使用 Complication 的类也进行了类似的重命名,例如 ComplicationsManager 现在称为 ComplicationSlotsManager。 (I4da44) - 在 GlesRenderer 中,
makeUiThreadContextCurrent
和makeBackgroundThreadContextCurrent
已被runUiThreadGlCommands
和runBackgroundThreadGlCommands
替换,它们都接受一个Runnable
。如果您需要在渲染之外进行 GL 调用,则只需要这些函数,runBackgroundThreadGlCommands
和onUiThreadGlSurfaceCreated
。这是必需的,因为在同一进程中可能有多个 GlesRenderer,每个都具有自己的上下文,可能来自不同的表盘。此外,对共享的当前 GL 上下文的访问现在已同步。 (I04d59) - 我们添加了
CanvasRenderer.uiThreadInit
,它在任何渲染调用之前在 UiThread 上调用一次。此外,为了清晰起见,在 GlesRenderer 中,我们已将onGlContextCreated
重命名为onBackgroundThreadGlContextCreated
,并将onGlSurfaceCreated
重命名为onUiThreadGlSurfaceCreated
。 (If86d0) HeadlessWatchFaceClient
&InteractiveWatchFaceClient
getComplicationsSlotState
已重命名为getComplicationSlotsState
。在ComplicationSlot
中:createRoundRectComplicationBuilder
、createBackgroundComplicationBuilder
和createEdgeComplicationBuilder
分别已重命名为createRoundRectComplicationSlotBuilder
、createBackgroundComplicationSlotBuilder
和createEdgeComplicationSlotBuilder
。 (Ib9adc)- 我们已将 onRendererCreated 添加到 CanvasComplication,这使得 Renderer 和 CanvasComplication 更容易共享状态。 (I5e1ac)
版本 1.0.0-alpha16
2021 年 6 月 16 日
androidx.wear:wear-*:1.0.0-alpha16
已发布。 版本 1.0.0-alpha16 包含以下提交。
新功能
- 我们修复了与最近的线程模型更改相关的一些错误,并解决了表盘编辑器中的其他问题。
错误修复
- 防止
onComplicationProviderChooserResult
中出现 NPE (b/189594557) - 修复与陈旧的 Surface 和 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
,它返回一个 Complication ID 到 DefaultComplicationProviderPolicies 和默认 ComplicationType 的映射。这比创建 headless 实例更快,因为它不需要完全初始化表盘来执行查询。
最后,复杂功能现在使用 CanvasComplicationFactory 进行构建,这允许延迟构建 CanvasComplication 渲染器。
API 更改
- 将
@TargetApi
替换为@RequiresApi
。 (I0184a,b/187447093,b/187447094) - 我们引入了
WatchFaceControlClient.getDefaultProviderPoliciesAndType
,它返回一个 Complication ID 到 DefaultComplicationProviderPolicies 和默认 ComplicationType 的映射。在可能的情况下,使用避免完全构建表盘的快速路径。为了促进这一点,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
字段设置为必须传递到其构造函数中。如果将ComplicationText.EMPTY
传递给contentDescription
,则会根据文本和标题自动生成contentDescription
。WatchFaceControlClient.getOrCreateInteractiveWatchFaceClient
现在会在表盘在初始化期间抛出异常时抛出ServiceStartFailureException
,这使得在表盘启动期间诊断问题变得更加容易。
API 更改
- 我们添加了对在ComplicationProviderInfo中使用空组件名称的支持,这需要支持旧版本的Wear OS。(I744d2)
- 我们已将
androidx.wear.complications.SystemProviders
从Java迁移到Kotlin。(Ia1f8b) - 我们已隐藏了android.support.wearable.complications中所有来自公共API的类,并在需要时在AndroidX中创建了相应的包装器。(I7bd50)
- 我们已将
TimeDifferenceComplicationText.Builder
中的方法从setMinimumUnit
重命名为setMinimalTimeUnit
。(I20c64) - 我们已将
ShortTextComplicationData.Builder
、LongTextComplicationData.Builder
和RangedValueComplicationData.Builder
的contentDescription
字段设置为必须传递到构造函数中。(I8cb69) - 我们已将ComplicationProviderService.onComplicationUpdate重命名为onComplicationRequest,并将此方法的id和type参数封装到数据ComplicationRequest中。相应的监听器已重命名为ComplicationRequestListener,其方法为ComplicationRequestListener.onComplicationData。(Iaf146)
- 我们已从
ComplicationData
中删除了方法isActiveAt
,并公开了字段validTimeRange
来代替它。此方法调用可以用validTimeRange.contains
替换。(I65936) - 我们已更改了方法ComplicationProviderService.onComplicationActivated的描述,使其接收ComplicationType而不是int。(Idb5ff)
- 将ProviderUpdateRequester从Java迁移到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)
错误修复
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)
WatcfaceControlServiceFactory
已从公共 API 中移除。(I1f8d3)- 我们已将
CanvasComplication.setData
重命名为CanvasComplication.loadData
。(If1239) ComplicationsManager.bringAttentionToComplication
已重命名为displayPressedAnimation
。(Ic4297)WatchFaceService.createWatchFace
现在有一个@UiThread
注解。(Ib54c2)- 更改了 CanvasComplicationDrawable 参数的名称以修复错误。(I50dac)
- 我们添加了
HeadlessWatchFaceClient.toBundle()
和HeadlessWatchFaceClient.createFromBundle
以支持通过 AIDL 发送HeadlessWatchFaceClient
。(I07c35) - HeadlessWatchFaceClient 和 InteractiveWatchFaceClient 现在具有 ClientDisconnectListener 和 isConnectionAlive(),允许您观察连接是否因某种原因断开(例如,表盘被杀死)。(Ie446d)
WatchFaceControlClient#getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClientAsync
现在是一个挂起函数,并且已重命名为getOrCreateInteractiveWatchFaceClient
。(Ib745d)EditorState.commitChanges
和hasCommitChanges()
已重命名为shouldCommitChanges()
。(I06e04)previewComplicationData
已重命名为previewComplicationsData
,以表明映射中(通常)有多个复杂功能。(I56c06)InteractiveWatchFaceWcsClient.bringAttentionToComplication
已重命名为displayPressedAnimation
,以与ComplicationsManager.displayPressedAnimation
保持一致。(Ic9999)- 表盘实例 ID 的所有实例都已封装到新的 WatchFaceId 类中 (I45fdf)
complicationState
属性已重命名为complicationsState
以指示复数。(Ided07)- 我们已删除各种 wear-watchface-client Binder 转换,它们应该是不必要的。(Icc4c0)
- 为了保持一致性,
EditorServiceClient
已重构为使用监听器而不是观察者。(Iec3a4) - 我们在
InteractiveWatchFaceSysUiClient
和WatchFaceControlClient
中添加了一些缺少的@Px
注解。(I3277a) - 将 EditorObserverCallback 重命名为 EditorObserverListener 以保持一致性。(Ie572d)
- EditorState.watchFaceInstanceId 仅限于 Android R 及更高版本的 API 级别,并且不再可为空。(Id52bb)
EditorSession.launchComplicationProviderChooser
已重命名为openComplicationProviderChooser
。(I9d441)EditorSession.createOnWatchEditingSessionAsync
已重命名为createOnWatchEditingSession
,并且现在是一个挂起函数。(Id257b)- 在
EditorSession
上添加了一些缺少的@UiThread
注解。(I6935c) UserStyleSetting.affectsLayers
已重命名为affectedLayers
。(I6e22b)
版本 1.0.0-alpha10
2021 年 3 月 24 日
androidx.wear:wear-*:1.0.0-alpha10
已发布。 版本 1.0.0-alpha10 包含这些提交。
新功能
- 现在可以在 WatchFaceService.createWatchFace 期间创建 OpenGL 对象(例如纹理),因为 GlesRenderer 现在需要显式调用 initOpenGLContext,这可以在 createWatchFace 内部完成。
API 更改
IdAndComplicationData
有点笨拙,已从公共 API 中移除。使用它的类和接口已重构。(I4c928)- 我们已将
ReferenceTime
替换为CountUpTimeReference
和CountDownTimeReference
,它们更具自解释性。(Ib66c6) - 添加了一些缺少的
@Px
和@ColorInt
注解。(I9bbc3) Complication.complicationConfigExtras
现在不可为空,默认为Bundle.EMPTY
。(Iad04f)GlesRenderer
现在要求您在构造后调用initOpenGLContext
。此函数是内部细节,但现在位于公共 API 上,以便在 createWatchFace 内部更早地进行 GL 调用。(I726c2)- 我们已删除
Complication.setRenderer
,因为它应该不再需要。(Ie992f) Complicaiton.setComplicationBounds
不再是公共 API 的一部分。如果您需要调整复杂功能的位置,可以通过ComplicationsUserStyleSetting
完成。(Ibd9e5)ComplicationsManager.TapCallback.onComplicationSingleTapped
已重命名为onComplicationTapped
。(I3a55c)ComplicationOutlineRenderer.drawComplicationSelectOutline
已重命名为drawComplicationOutline
。(I14b88)
版本 1.0.0-alpha09
2021 年 3 月 10 日
androidx.wear:wear-complications-*:1.0.0-alpha09
和 androidx.wear:wear-watchface-*:1.0.0-alpha09
已发布。 版本 1.0.0-alpha09 包含这些提交。
新功能
- WCS/SysUI 主机和表盘之间的接口已经发展。现在编辑器可以确定样式更改是否会启用或禁用复杂功能(启用 = initiallyEnabled 加上来自 ComplicationsUserStyleSetting 的任何覆盖)。此外,
EditorService.closeEditor
允许 SysUI 在需要时远程关闭表盘编辑器。 - 此外,
InteractiveWatchFaceWcsClient.setUserStyle
具有更强大的命令updateInstance
,它可以:一次性更改实例 ID、设置样式并清除复杂功能。
API 更改
- 跟踪事件已添加到表盘库中。(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
之外的其他图层模式。(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 为 null。(Id8b78)
- EditorRequest 现在包含编辑器 ComponentName,它被设置为 WatchFaceEditorContract.createIntent 中的组件(I3cd06)
- 表盘 EditorResult 现在包含预览 ComplicationData,允许调用方在编辑后截取表盘的屏幕截图。(I2c561)
错误修复
- 向 UserStyle、UserStyleSetting 和 UserStyleSchema 添加了 toString() 覆盖,这使得使用这些类变得更加方便。(I9f5ec)
版本 1.0.0-alpha06
2021 年 1 月 27 日
androidx.wear:wear-*:1.0.0-alpha06
已发布。版本 1.0.0-alpha06 包含以下提交。
新功能
- 我们引入了一个新的库 wear/wear-watchface-editor,它允许表盘开发者和潜在的 OEM 构建样式和复杂功能编辑器。SysUI 将向表盘发送一个 Intent,该 Intent 将使用新的 EditorSession 类访问表盘详细信息,并通过 Activity.setWatchRequestResult 记录结果。为了支持这一点,我们添加了 ProviderInfoRetriever.requestPreviewComplicationData,它允许表盘编辑器请求预览 ComplicationData。预览 ComplicationData 的优势在于,与实时数据不同,您无需担心在渲染编辑器时显示权限对话框(请注意,如果用户选择具有权限的提供程序,他们仍将被提示授予权限)。
API 更改
- ComplicationProviderInfo 现在有一个用于提供程序 ComponentName 的字段,对该字段的支持将在稍后添加到 WearOS,在此期间,它将为 null。(Id8fc4)
- 我们添加了 ProviderInfoRetriever.requestPreviewComplicationData,它允许表盘编辑器请求预览 ComplicationData。这很有用,因为实时复杂功能可能需要权限,并且您现在可以显示未激活的复杂功能的预览数据。(I2e1df)
- ComplicationManager 现在是 WatchFace 构造函数的可选参数,并且参数已重新排序以允许这样做。(I66c76)
- 我们向 Complications 添加了一个可选的 Bundle,如果设置,它将与发送到启动提供程序选择器活动的 Intent 合并。(Ifd4ad)
- 我们添加了一个新的
wear-watchface-editor
库来支持手表表盘和 SysUi 托管的编辑器。SysUI 将通过发送 Intent 来启动这些编辑器。手表表盘活动服务可以使用新的 EditorSession 类访问表盘详细信息,并通过 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 属性,该属性仅对无头实例为真。(Ifa900)
- ComplicationDrawable 现在可以选择支持可绘制对象的同步加载。这由屏幕截图 API 使用。(I34d4a)
版本 1.0.0-alpha04
2020 年 12 月 16 日
androidx.wear:wear-*:1.0.0-alpha04
已发布。版本 1.0.0-alpha04 包含以下提交。
新功能
- wear 表盘库现在支持按类型设置边界。例如,您可以切换到 ComplicationType.LONG_TEXT 的宽边界框,同时对其他类型使用较小的边界框。
API 更改
- 复杂功能现在使用 ComplicationBounds,它包装一个
Map<ComplicationType, RectF>
来支持每个复杂功能类型的尺寸。(I1ebe7) - RenderParameters 现在允许您指定高亮色调以用于屏幕截图。(Iff42b)
- 除了边界之外,您现在必须使用 ComplicationsUserStyleSetting 来修改复杂功能,这是为了确保操作系统保持同步。(I8dc5d)
- Renderer 现在是一个密封类。这意味着 CanvasRenderer 和 GlesRenderer 现在是 Renderer 的内部类。(Iab5d4,b/173803230)
- CanvasComplicationDrawable.drawHighlight 重命名为 drawOutline。ObservableWatchData 现在缺少一些 UiThread 注解。ScreenState 现在已完全从 WatchState 中删除。(If1393)
- wear-watchface 的最低 API 级别现在为 25。请注意,硬件画布支持需要 API 级别 26 或更高版本。(Ic9bbd)
- InteractiveWatchFaceWcsClient 现在有一个 getComplicationIdAt 帮助程序。(I05811)
- wear-watchface-client 的 API 级别已降至 25,但屏幕截图 API 需要 API 级别 27。(Id31c2)
错误修复
- 我们现在在 ComplicationState 中公开了复杂功能的当前 ComplicationData 的 ComplicationType。(I9b390)
- InteractiveWatchFaceWcs 现在有一个方法 `bringAttentionToComplication` 用于短暂突出显示指定的复杂功能。(I6d31c)
InteractiveWatchFaceWcsClient#setUserStyle
现在有一个接受 Map 的重载这可能会避免构建 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 拥有了 complicationData,允许表盘观察 ComplicationData 的变化。Complication 还新增了一个 isActiveAt 调用,可用于判断在提供的日期时间是否应渲染任何内容。(Ic0e2a)
- 空的
SharedMemoryImage
现已不再属于公共 API。(I7ee17) WatchFace.overridePreviewReferenceTimeMillis
现在具有 IntRange 注解,并且 getter 和 setter 的名称保持一致。(Ia5f78)Complication.Builder
现在通过Complication.createRoundRectComplicationBuilder
或Complication.createBackgroundComplicationBuilder
创建,以提高清晰度(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)
错误修复
- 从 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)- 简化 Renderer 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)
- 样式类别显示名称现在是 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 小部件,也可以是实现
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 和 ArcLayouts 中的辅助功能支持。它还对 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 更改
- 将 Ongoing Activities 库迁移到一个新的子库: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
- 现在可以在创建 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 处理程序。
Ongoing Activities 类现在是 VersionedParcelables,而不是使用自定义序列化/反序列化。静态图标和触摸意图现在是必需的。
API 更改
- WearCurvedTextView 的属性“sweepDegrees”已分为 minSweepDegrees 和 maxSweepDegrees,以提供更灵活的此小部件布局。
版本 1.2.0-alpha02
2020 年 11 月 11 日
androidx.wear:wear:1.2.0-alpha02
已发布。 版本 1.2.0-alpha02 包含以下提交。
此版本首次添加了新的“正在进行的活动 API”。开发人员可以使用此 API 来指示长时间运行的活动(例如健身锻炼或媒体播放会话)正在进行。它允许开发人员提供定期状态更新,例如“运行的距离和时间”或“当前播放的曲目”,以便在表盘或应用启动器上显示。此功能针对的是启用了正在进行的活动功能的未来设备。
API 更改
- 正在进行的活动的新的 API,在“不支持的设备”上,此操作为空操作。 (I69a31)
版本 1.2.0-alpha01
2020 年 10 月 28 日
androidx.wear:wear:1.2.0-alpha01
已发布。 版本 1.2.0-alpha01 包含以下提交。
新功能
- 添加了 WearCurvedTextView 组件,以便轻松编写遵循视图中可以刻入的最大圆的曲率的弯曲文本。使用示例
<androidx.wear.widget.WearCurvedTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="example curved text"
app:anchorAngleDegrees="180"
app:anchorPosition="center"
app:clockwise="false"
style="@android:style/TextAppearance.Large"
/>
- 添加了 WearArcLayout 容器,用于逐个在弧线上(顺时针或逆时针方向)布局其子元素。其子元素可以是标准 Android 小部件或实现其 ArcLayoutWidget 接口的“弯曲”小部件。使用示例
<androidx.wear.widget.WearArcLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
app:anchorPosition="center">
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:src="@drawable/ic_launcher"
/>
<androidx.wear.widget.WearCurvedTextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Curved Text"
style="@android:style/TextAppearance.Small"
android:padding="2dp"
/>
</androidx.wear.widget.WearArcLayout>
(I536da)
Wear-Input 1.2
版本 1.2.0-alpha02
2021年9月29日
androidx.wear:wear-input:1.2.0-alpha02
和 androidx.wear:wear-input-testing:1.2.0-alpha02
已发布。 版本 1.2.0-alpha02 包含以下提交。
API 更改
- 在
WearableRemoteInputExtender
中将disallowEmoji
重命名为setEmojisAllowed
,用于设置是否显示绘制表情符号的选项。 (I28393)
版本 1.2.0-alpha01
2021年9月15日
androidx.wear:wear-input:1.2.0-alpha01
和 androidx.wear:wear-input-testing:1.2.0-alpha01
已发布。 版本 1.2.0-alpha01 包含以下提交。
API 更改
- 公开了
WearableButtons
中的所有按钮位置常量。 (Ibb12c) - 添加了
WearableRemoteInputExtender
类,可用于向 android.app.RemoteInput 添加 Wear 特定的额外信息。 (I01903)
Wear-Input 1.1.0
版本 1.1.0
2021 年 8 月 18 日
androidx.wear:wear-input:1.1.0
和 androidx.wear:wear-input-testing:1.1.0
已发布。 版本 1.1.0 包含以下提交。
自 1.0.0 以来的重要更改
- 添加了
RemoteInputIntentHelper
。- 此类可用于构建 RemoteInput Intent。然后,可以使用它来请求用户在可自定义的活动中输入信息。
版本 1.1.0-rc01
2021 年 8 月 4 日
androidx.wear:wear-input:1.1.0-rc01
和 androidx.wear:wear-input-testing:1.1.0-rc01
已发布。 1.1.0-rc01 版本包含以下提交。
自 androidx.wear:wear-input:1.1.0-beta01
和 androidx.wear:wear-input-testing:1.1.0-beta01
以来,没有 API 更改。
版本 1.1.0-beta01
2021 年 7 月 21 日
androidx.wear:wear-input:1.1.0-beta01
和 androidx.wear:wear-input-testing:1.1.0-beta01
已发布,自 1.1.0-alpha03
以来没有更改。 1.1.0-beta01 版本包含以下提交。
1.1.0-alpha03 版本
2021 年 6 月 30 日
androidx.wear:wear-input:1.1.0-alpha03
和 androidx.wear:wear-input-testing:1.1.0-alpha03
已发布。 1.1.0-alpha03 版本包含以下提交。
错误修复
- 修复了导致通过
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 支持库迁移到 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 支持库迁移到 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)