可穿戴设备

创建适用于 Google Wear OS 智能手表的应用程序。

此表列出了 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 - -
此库上次更新于:2024 年 10 月 16 日

声明依赖项

要添加对 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 更改

  • 根据反馈更新了AmbientLifecycleObserverAmbientLifecycleObserverInterface 已重命名为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的可空性(I99ddfb/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 更改

  • 添加了属性 redirectUrl 到 OAuthRequest。 (I98840, Ie684d)

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.0androidx.wear:wear-remote-interactions:1.0.0 已发布。 版本 1.0.0 包含以下提交。

1.0.0 的主要功能

电话交互库包含用于可穿戴设备与手机交互的 API。它包含以下内容:

  • PhoneDeviceType,提供帮助方法来确定当前手表配对的手机类型,仅供可穿戴设备使用。
  • BridgingManagerBridgingManagerServiceBridgingConfig 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-rc01androidx.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-beta01androidx.wear:wear-remote-interactions:1.0.0-beta01 已发布。 版本 1.0.0-beta01 包含以下提交。

API 更改

  • 将类 RemoteIntentHelper 重命名为 RemoteActivityHelper。将函数 RemoteIntentHelper#getRemoteIntentExtraIntentRemoteIntentHelper#getRemoteIntentNodeId 分别重命名为 RemoteActivityHelper#getTargetIntentRemoteActivityHelper#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)

错误修复

  • SerializationHelper.copy() 现在对信息进行防御性复制 (I8b276)
  • 改进了 setCategory 文档 (Iff01f)

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 的状态。
    • OngoingActivityDataOngoingActivityStatus 不再是公共 API 的一部分。
  • TextStatusPartTimerStatusPart 不再是公共 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-alpha03androidx.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-alpha02androidx.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-alpha01androidx.wear:wear-phone-interactions:1.0.0-alpha01androidx.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,如果将其传递给 renderWatchFaceToBitmapPreviewScreenshotParams,则请求使用表盘的默认预览时间进行渲染。(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.TRUEBooleanOption.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 中,makeUiThreadContextCurrentmakeBackgroundThreadContextCurrent 已被 runUiThreadGlCommandsrunBackgroundThreadGlCommands 替换,它们都接受一个 Runnable。库确保在任何给定时间只有一个 GL 命令 Runnable 正在执行。

  • 为了使 UiThread 初始化更容易,我们添加了 CanvasRenderer.uiThreadInit,它在任何对 render 的调用之前在 UiThread 上调用一次。我们还将 onRendererCreated 添加到 CanvasComplication 中,这使得 RendererCanvasComplication 更容易共享状态。

  • 为了清晰起见,我们已将 Complication 重命名为 ComplicationSlot,并将 complicationId 重命名为 complicationSlotIdcomplicationInstanceId,具体取决于用法

API 更改

  • 为了清晰起见,我们已将 Complication 重命名为 ComplicationSlot,并将 complicationId 重命名为 complicationSlotIdcomplicationInstanceId,具体取决于用法。使用 Complication 的类也已类似地重命名,例如 ComplicationsManager 现在称为 ComplicationSlotsManager。(I4da44
  • 在 GlesRenderer 中,makeUiThreadContextCurrentmakeBackgroundThreadContextCurrent 已被 runUiThreadGlCommandsrunBackgroundThreadGlCommands 替换,它们都接受一个 Runnable。如果您需要在 render 之外进行 GL 调用,则只需要这些函数,runBackgroundThreadGlCommandsonUiThreadGlSurfaceCreated。这是必需的,因为在同一进程中可能有多个 GlesRenderer,每个都有自己的上下文,可能来自不同的表盘。此外,对共享当前 GL 上下文的访问现在已同步。(I04d59
  • 我们添加了 CanvasRenderer.uiThreadInit,它在任何对 render 的调用之前在 UiThread 上调用一次。此外,为了清晰起见,在 GlesRenderer 中,我们已将 onGlContextCreated 重命名为 onBackgroundThreadGlContextCreated,并将 onGlSurfaceCreated 重命名为 onUiThreadGlSurfaceCreated。(If86d0
  • HeadlessWatchFaceClient & InteractiveWatchFaceClient getComplicationsSlotState 已重命名为 getComplicationSlotsState。在 ComplicationSlot 中:createRoundRectComplicationBuildercreateBackgroundComplicationBuildercreateEdgeComplicationBuilder 已分别重命名为 createRoundRectComplicationSlotBuildercreateBackgroundComplicationSlotBuildercreateEdgeComplicationSlotBuilder。(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。 (I0184ab/187447093b/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 属性 eglContexteglDisplay 现在是非空的。任何 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.BuilderLongTextComplicationData.BuilderRangedValueComplicationData.BuildercontentDescription 字段设为必须传递到其构造函数中。如果为 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.BuilderLongTextComplicationData.BuilderRangedValueComplicationData.BuildercontentDescription 字段设为必须传递到构造函数中。 (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.BuilderMonochromaticImageComplicationData.BuilderSmallImageComplicationData.BuildercontentDescription字段设置为必须的构造函数参数。(I9643a
  • ProviderInfoRetriever.requestPreviewComplicationData已重命名为retrievePreviewComplicationData。(I911ee
  • ComplicationProviderService从Java迁移到Kotlin。(I849f2
  • 方法ComplicationProviderService.onBind现在是final的(I39af5
  • 我们已恢复接口CanvasComplication,并将CanvasComplicaitonDrawableGlesTextureComplicationComplicationHighlightRenderer移动到wear-watchface-complications-rendering。(I84670
  • RenderParameters已重构以支持扩展的高亮渲染。现在可以请求渲染样式的高亮,以及所有或单个复杂功能的高亮。此外,CanvasRenderer和GlesRenderer现在有一个新的抽象方法renderHighlightLayer,用于渲染编辑器请求的任何高亮。Layer已重命名为WatchFaceLayer。(Ic2444
  • 已添加ComplicationTapFilterComplication.createEdgeComplicationBuilder以支持边缘复杂功能。边缘复杂功能的渲染和点击测试由表盘负责。编辑器内部不支持点击测试。(Ia6604
  • 对于DoubleRangeUserStyleSettingLongRangeUserStyleSettingdefaultValuemaximumValueminimumValue现在是Kotlin属性。此外,UserStyleSetting.Option中的函数,如toBooleanOption、toCoplicationOptions、toListOption等已被移除。(I52899
  • 将下巴尺寸添加到设备属性中,这些属性可供表盘使用。(I76e1e
  • ComplicationHighlightRenderer的构造函数现在接受outlineExpansionoutlineStrokeWidth参数。(I87009
  • ComplicationDrawable.getNoDataText现在是公共API的一部分。(I00598

版本 1.0.0-alpha11

2021年4月7日

androidx.wear:wear-*:1.0.0-alpha11已发布。版本 1.0.0-alpha11 包含这些提交。

新功能

  • 表盘API进行了更多改进。大多数更改都是简单的重命名,但InteractiveWatchFaceWcsClientInteractiveWatchFaceSysUiClient已合并为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
  • UserStyleSettingUserStyleSetting.Option现在分别使用UserStyleSetting.IdUserStyleSetting.Option.Id来存储它们的id,而不是String。(I63f72
  • InteractiveWatchFaceClient.SystemState已重命名为WatchUiState。(I6a4e0
  • InteractiveWatchFaceWcsClientInteractiveWatchFaceSysUiClient已合并,因为很难解释职责划分(Iff3fa
  • 为了更清晰,已重命名Layer枚举值。Layer#TOP_LAYER现在是Layer#COMPLICATIONS_OVERLAYLayer#BASE_LAYER现在是Layer#BASEIa144e
  • UserStyleListener已重命名为UserStyleChangeListenerI18524
  • UserStyleRepository已重命名为CurrentUserStyleRepositoryI6ea53
  • 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.commitChangeshasCommitChanges()已重命名为shouldCommitChanges()。(I06e04
  • previewComplicationData已重命名为previewComplicationsData,以指示映射中(通常)有多个复杂功能。(I56c06
  • InteractiveWatchFaceWcsClient.bringAttentionToComplication已重命名为displayPressedAnimation,以与ComplicationsManager.displayPressedAnimation保持一致。(Ic9999
  • 表盘实例ID的所有实例都已封装在一个新的WatchFaceId类中(I45fdf
  • complicationState属性已重命名为complicationsState以指示复数。(Ided07
  • 我们已删除各种wear-watchface-client Binder转换,它们应该是必要的。(Icc4c0
  • 为了保持一致性,已重构EditorServiceClient以使用侦听器而不是观察者。(Iec3a4
  • 我们已向InteractiveWatchFaceSysUiClientWatchFaceControlClient添加了一些缺少的@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 替换为 CountUpTimeReferenceCountDownTimeReference,它们更具自解释性。(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-alpha09androidx.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 的内部类。(Iab5d4b/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 的构造函数现在是内部的。(I30121b/173802666
  • Complication 现在具有 compicationData,允许手表表盘观察 ComplicationData 更改。Complication 还具有一个新的 isActiveAt 调用,可用于判断在提供的日期时间是否应呈现任何内容。(Ic0e2a
  • 空的 SharedMemoryImage 不再位于公共 API 中。(I7ee17
  • WatchFace.overridePreviewReferenceTimeMillis 现在具有 IntRange 注释,并且 getter 和 setter 具有相同名称。(Ia5f78
  • Complication.Builder 现在通过 Complication.createRoundRectComplicationBuilderComplication.createBackgroundComplicationBuilder 创建,以提高清晰度(I54063
  • 添加了 WatchFace.TapListener,允许手表表盘观察复杂功能未消耗的点击。(Ic2fe1b/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 的用法已迁移到 androidx ComplicationType。(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-alpha01androidx.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 检查(I4bbeab/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"
    />
    

    An example of curved text in Android Wear

  • 添加了 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>
    

    An example of arch text in Android Wear

  • 添加了一个新的布局容器 DismissibleFrameLayout,它处理后退按钮关闭和/或滑动关闭,旨在在活动中使用。必须添加至少一个侦听器来对关闭操作做出反应。侦听器通常会从当前活动中删除包含视图或片段。提供 setSwipeDismissible(boolean) & setBackButtonDismissible(boolean) 以直接控制这些功能。此新布局旨在替换现有的 SwipeDismissFrameLayout。

  • 在 AmbientModeSupport 类中添加了支持,用于指示活动在设备离开环境模式时可以“自动恢复”。此功能以前可在 WearableSupportLibrary 中已弃用的 WearableActivity 类中使用。(I336ab

  • 从 Wearable Support Library 迁移了 WearableCalendarContract 类。此 API 提供了可通过 CalendarContract 获取的数据子集,但会自动同步到可穿戴设备。(I6f2d7

  • androidx.wear.utils 中添加了一个新的 API WearTypeHelper,用于确定给定的可穿戴设备是否适用于中国。(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 中添加了一个新的 API WearTypeHelper,用于确定给定的可穿戴设备是否适用于中国。(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

错误修复

  • 在 Talkback 上使用 CurvedTextView 的内容。(I05798
  • 改进 ArcLayout 中普通视图的辅助功能。(I4418d

版本 1.2.0-alpha09

2021年5月18日

androidx.wear:wear:1.2.0-alpha09 已发布。 1.2.0-alpha09 版本包含以下提交。

API 更改

  • 添加了一个新函数 CurvedTextView.setTypeface()(类似于 TextView 的),用于设置文本字体和粗体/斜体样式。 (I4653c)
  • WearArcLayout 重命名为 ArcLayoutWearCurvedText 重命名为 CurvedText,以及 WearArcLayout.ArcLayoutWidget 重命名为 ArcLayout.Widget。 (I6e5ce)
    • ArcLayout.Widget 上,将 getThicknessPx 重命名为 getThickness
    • ArcLayout.LayoutParams 上的垂直对齐常量现在以 VERTICAL_ALIGN_ 开头命名(而不是之前的 VALIGN_)。
  • CurvedTextView 上,方法 setMinSweepDegreessetMaxSweepDegreessetSweepRangeDegrees 替换。 (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)
  • 通过将布局参数扩展为 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"
/>

An example of curved text in Android Wear

  • 添加了 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>

An example of arch text in Android Wear

(I536da)

Wear-Input 1.2

1.2.0-alpha02 版本

2021 年 9 月 29 日

androidx.wear:wear-input:1.2.0-alpha02androidx.wear:wear-input-testing:1.2.0-alpha02 已发布。 1.2.0-alpha02 版本包含以下提交。

API 更改

  • disallowEmoji 重命名为 setEmojisAllowedWearableRemoteInputExtender 中使用,以设置是否显示绘制表情符号的选项。 (I28393)

1.2.0-alpha01 版本

2021 年 9 月 15 日

androidx.wear:wear-input:1.2.0-alpha01androidx.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.0androidx.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-rc01androidx.wear:wear-input-testing:1.1.0-rc01 已发布。 1.1.0-rc01 版本包含以下提交。

androidx.wear:wear-input:1.1.0-beta01androidx.wear:wear-input-testing:1.1.0-beta01 以来,没有 API 更改

版本 1.1.0-beta01

2021 年 7 月 21 日

androidx.wear:wear-input:1.1.0-beta01androidx.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-alpha03androidx.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-alpha02androidx.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-alpha01androidx.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.0androidx.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-rc01androidx.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-beta01androidx.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,以允许指定确认对话框显示的持续时间。(adb83ceb/143356547
  • 更新了 WearableActionDrawView,使其延迟操作抽屉膨胀,直到第一次打开抽屉。(I01026b/163870541

版本 1.1.0-rc03

2020 年 9 月 2 日

androidx.wear:wear:1.1.0-rc03 已发布。 版本 1.1.0-rc03 包含这些提交。

错误修复

  • 修复了操作抽屉打开时不显示内容的问题。(I01026b/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,以允许指定确认对话框显示的持续时间。(adb83ce134523cb/143356547

错误修复

  • 更新了 WearableActionDrawView,使其延迟操作抽屉膨胀,直到第一次打开抽屉。(5cd32f7