可穿戴设备

创建适用于 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-beta01 -
此库上次更新于:2024 年 7 月 24 日

声明依赖项

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

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

  • 添加了属性 redirectUrl 到 OAuthRequest。(I98840Ie684d)

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.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 类,可用于在其他设备上打开 Intent(例如,从手表到手机)。

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)
  • 修复了 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。(Ie542eb/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 上的一些设置器现在接受 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)

错误修复

  • 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 现在具有获取器,可直接检索通过 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 现在具有一套完整的获取器,与之前仅在 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-alpha03androidx.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-alpha02androidx.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-alpha01androidx.wear:wear-phone-interactions:1.0.0-alpha01androidx.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,如果将其传递给 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 中,如果非空,则此参数用于构造一个 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 中,makeUiThreadContextCurrentmakeBackgroundThreadContextCurrent 已被 runUiThreadGlCommandsrunBackgroundThreadGlCommands 替换,它们都接受一个 Runnable。库确保在任何给定时间只有一个 GL 命令 Runnable 正在执行。

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

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

API 更改

  • 为了清晰起见,我们已将 Complication 重命名为 ComplicationSlot,并将 complicationId 重命名为 complicationSlotIdcomplicationInstanceId,具体取决于用法。使用 Complication 的类也进行了类似的重命名,例如 ComplicationsManager 现在称为 ComplicationSlotsManager。 (I4da44)
  • 在 GlesRenderer 中,makeUiThreadContextCurrentmakeBackgroundThreadContextCurrent 已被 runUiThreadGlCommandsrunBackgroundThreadGlCommands 替换,它们都接受一个 Runnable。如果您需要在渲染之外进行 GL 调用,则只需要这些函数,runBackgroundThreadGlCommandsonUiThreadGlSurfaceCreated。这是必需的,因为在同一进程中可能有多个 GlesRenderer,每个都具有自己的上下文,可能来自不同的表盘。此外,对共享的当前 GL 上下文的访问现在已同步。 (I04d59)
  • 我们添加了 CanvasRenderer.uiThreadInit,它在任何渲染调用之前在 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 中出现 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。 (I0184ab/187447093b/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 属性 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字段设置为必须传递到其构造函数中。如果将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.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现在是公开的。表盘代码可能需要在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.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#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.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 更改

  • 跟踪事件已添加到表盘库中。(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 的内部类。(Iab5d4b/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 的构造函数现在是内部的。(I30121b/173802666

  • 现在,Complication 拥有了 complicationData,允许表盘观察 ComplicationData 的变化。Complication 还新增了一个 isActiveAt 调用,可用于判断在提供的日期时间是否应渲染任何内容。(Ic0e2a
  • 空的 SharedMemoryImage 现已不再属于公共 API。(I7ee17
  • WatchFace.overridePreviewReferenceTimeMillis 现在具有 IntRange 注解,并且 getter 和 setter 的名称保持一致。(Ia5f78
  • Complication.Builder 现在通过 Complication.createRoundRectComplicationBuilderComplication.createBackgroundComplicationBuilder 创建,以提高清晰度(I54063
  • 添加了 WatchFace.TapListener,允许 WatchFace 观察复杂功能未消耗的点击事件。(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
  • 简化 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-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
  • 样式类别显示名称现在是 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"
    />
    

    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 和 ArcLayouts 中的辅助功能支持。它还对 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 重命名为 ArcLayout,将 WearCurvedText 重命名为 CurvedText,并将 WearArcLayout.ArcLayoutWidget 重命名为 ArcLayout.Widget。 (I6e5ce)
    • ArcLayout.Widget 上,将 getThicknessPx 重命名为 getThickness
    • ArcLayout.LayoutParams 上的垂直对齐常量现在以 VERTICAL_ALIGN_ 开头命名(而不是之前的 VALIGN_)。
  • CurvedTextView 上,方法 setMinSweepDegreessetMaxSweepDegrees 已被 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)
  • 通过将布局参数扩展到 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"
/>

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 更改

  • WearableRemoteInputExtender 中将 disallowEmoji 重命名为 setEmojisAllowed,用于设置是否显示绘制表情符号的选项。 (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 Intent。然后,可以使用它来请求用户在可自定义的活动中输入信息。

版本 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 支持库迁移到 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 支持库迁移到 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