Wear

打造适用于 Wear OS by Google 谷歌智能手表的应用。

下表列出了 androidx.wear 组中的所有工件。

工件 当前稳定版 下一候选版本 Beta 版 Alpha 版
wear 1.1.0 - - 1.2.0-alpha10
wear-input 1.0.0 - - 1.1.0-alpha02
wear-complications-data - - - 1.0.0-alpha15
wear-complications-provider - - - 1.0.0-alpha15
wear-watchface - - - 1.0.0-alpha15
wear-watchface-client - - - 1.0.0-alpha15
wear-watchface-complications-rendering - - - 1.0.0-alpha15
wear-watchface-data - - - 1.0.0-alpha15
wear-watchface-editor - - - 1.0.0-alpha15
wear-watchface-style - - - 1.0.0-alpha15
wear-ongoing - - - 1.0.0-alpha06
wear-phone-interactions - - - 1.0.0-alpha04
wear-remote-interactions - - - 1.0.0-alpha03
此库的最后更新时间:2021 年 6 月 2 日

声明依赖项

如需添加 Wear 的依赖项,您必须将 Google Maven 代码库添加到项目中。如需了解详情,请参阅 Google 的 Maven 代码库

在应用或模块的 build.gradle 文件中添加所需工件的依赖项:

Groovy

dependencies {
    implementation "androidx.wear:wear:1.1.0"

    // Add support for wearable specific inputs
    implementation "androidx.wear:wear-input:1.0.0"
    implementation "androidx.wear:wear-input-testing:1.0.0"

    // Use to implement wear watchface complications
    implementation "androidx.wear:wear-complications-provider:1.0.0-alpha14"

    // Use to implement wear watchfaces
    implementation "androidx.wear:wear-watchface:1.0.0-alpha14"

    // Use to implement a watchface style and complication editor
    implementation "androidx.wear:wear-watchface-editor:1.0.0-alpha14"

    // Use to implement wear ongoing activities
    implementation "androidx.wear:wear-ongoing:1.0.0-alpha05"

    // Use to implement support for interactions from the Wearables to Phones
    implementation "androidx.wear:wear-phone-interactions:1.0.0-alpha04"
    // Use to implement support for interactions between the Wearables and Phones
    implementation "androidx.wear:wear-remote-interactions:1.0.0-alpha03"
}

Kotlin

dependencies {
    implementation("androidx.wear:wear:1.1.0")

    // Add support for wearable specific inputs
    implementation("androidx.wear:wear-input:1.0.0")
    implementation("androidx.wear:wear-input-testing:1.0.0")

    // Use to implement wear watchface complications
    implementation("androidx.wear:wear-complications-provider:1.0.0-alpha14")

    // Use to implement wear watchfaces
    implementation("androidx.wear:wear-watchface:1.0.0-alpha14")
}

如需详细了解依赖项,请参阅添加构建依赖项

反馈

您的反馈将帮助我们改进 Jetpack。如果您发现了新问题,或对库的改进有某些建议,请告诉我们。创建新问题前,请先查看此库中的现有问题。您可以点击星标按钮,为现有问题投票。

创建新问题

如需了解详情,请参阅问题跟踪器文档

Wear Ongoing 和 Interactions 版本 1.0.0

Wear-Ongoing 版本 1.0.0-alpha06

2021 年 6 月 2 日

发布了 androidx.wear:wear-ongoing:1.0.0-alpha06版本 1.0.0-alpha06 中包含这些提交内容

API 变更

  • 为持续性活动添加了“标题”字段。(I7a405)

bug 修复

  • 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 直接设置的所有值(或从关联的 Notification 中获取的默认值)。(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 上提供。(I0ee4d)

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 从穿戴式设备支持库迁移到 AndroidX。迁移后的这个类已重命名为 RemoteAuthClient,它不但支持在穿戴式设备上进行远程身份验证,还支持添加 OAuth PKCE 扩展。此外,还提供了用于通信的其他处理程序类和辅助类。
  • 现在,使用新的 ConcurrentActivity.Builder 构造函数,可将正在进行的活动与具有标记的通知关联起来。

API 变更

  • 添加了对 Ongoing Activities 库中的通知标记的支持 (I653b4)
  • 将 OAuthClient 从 Wear 支持库迁移到 AndroidX 中,并添加了对 OAuth PKCE 扩展的支持 (I3eaa)

Wear-Remote-Interactions 版本 1.0.0-alpha02

2021 年 3 月 10 日

发布了 androidx.wear:wear-remote-interactions:1.0.0-alpha02版本 1.0.0-alpha02 中包含这些提交内容

新功能

  • 将 PlayStoreAvailability 类从穿戴式设备支持库迁移到 AndroidX 中,该类提供了用于检查手机上是否有 Play 商店的 API。

问题修复

  • 将 PlayStoreAvailability 类从穿戴式设备支持库迁移到 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 变更

  • 添加了对更复杂的状态的支持。它们由一个(或多个)模板和一系列用于填充模板占位符的 Part 组成。OngoingActivityStatus 现在具有一种静态方法,用于创建仅具有一个部分(Text 或 Timer)的简单状态;以及一个用于创建更复杂的状态的 Builder。 (I1fe81)
  • 将 BridgingManager 和 BridgingConfig 类从 Wear 支持库移至 AndroidX,这提供了用于在运行时启用/停用通知的 API;还可以为免于进入桥接模式的通知设置标记。 (I3a17e)

版本 1.0.0-alpha01

2021 年 1 月 27 日

发布了 androidx.wear:wear-ongoing:1.0.0-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)

  • 创建新的支持库,其中包含支持从穿戴式设备到手机的交互的类。该库中最初填充了从穿戴式设备支持库迁移的类。(Id5180)

  • 将 PhoneDeviceType 类从穿戴式设备支持库迁移到 AndroidX。迁移的类已重命名为 PhoneTypeHelper,该类提供辅助方法来确定当前手表配对的手机类型,并仅在穿戴式设备上使用。(Ibd947)

  • 创建新的支持库,其中包含支持在穿戴式设备和手机之间进行交互的类。该库中最初填充了从穿戴式设备支持库迁移的类。(I9deb4)

  • 将 WatchFaceCompanion 类从穿戴式设备支持库迁移到 AndroidX。迁移的类已重命名为 WatchFaceConfigIntentHelper,该类提供辅助函数,用于在手机配套的表盘配置 Activity 中指定 ID 和组件名称;该类还可以在本地使用,以配置穿戴式设备上的表盘。(Ia455f)

Wear Complications 和 Watchface 1.0.0

版本 1.0.0-alpha15

2021 年 6 月 2 日

发布了 androidx.wear:wear-*:1.0.0-alpha15版本 1.0.0-alpha15 中包含这些提交内容

新功能

现在,大部分的表盘初始化任务是在后台线程中完成的,不过,当所有表盘加载后,渲染等任务是在 UiThread 中完成的。由于加载和渲染之间存在内存屏障,因此大多数的用户表盘无需执行任何特殊操作。使用 GLES 的表盘可能是一个例外,因为其上下文是特定于线程的。我们创建了两个关联的上下文,以便能在后台线程中上传 GL 资源(例如:纹理和着色器),并在 UiThread 中使用这些资源。

我们将表盘的构造拆分为三个函数:createUserStyleSchema、createComplicationsManager 和 createWatchFace。我们假设,在加载资源时,createUserStyleSchema 和 createComplicationsManager 的速度很快,而 createWatchFace 可能需要一些时间。为充分利用这一点,我们引入了 WatchFaceControlClient.getDefaultProviderPoliciesAndType,它将返回复杂功能 ID 与 DefaultComplicationProviderPolicy 和默认 ComplicationType 的映射。这比创建无头实例更快,因为它无需完全初始化表盘便可执行查询。

最后,复杂功能现在使用 CanvasComplicationFactory 进行构造,后者允许延迟构造 CanvasComplication 渲染程序。

API 变更

  • 已将 @TargetApi 替换为 @RequiresApi。(I0184ab/187447093b/187447094
  • 我们引入了 WatchFaceControlClient.getDefaultProviderPoliciesAndType,它会返回复杂功能 ID 与 DefaultComplicationProviderPolicy 和默认 ComplicationType 的映射。在可能的情况下,请使用免于完全构造表盘的快速路径。为此,我们不得不使用 createUserStyleSchema 和 createComplicationsManager 这两个新方法来更改 WatchFaceService API,这两个新方法的结果会传递到 createWatchFace 中。此外,复杂功能现在使用 CanvasComplicationFactory 进行构造,后者允许延迟构造 CanvasComplication 渲染程序。(Iad6c1)
  • 我们从 SystemProviders 中移除了 MOST_RECENT_APP。(I3df00)
  • ObservableWatchData 现在是一个密封的类。(Ic940d)
  • 现在会在界面线程渲染开始之前,在每项复杂功能在后台线程中调用 CanvasComplicationFactory.create(通常为 I/O 密集型)。由于构造和渲染之间存在内存屏障,因此无需特殊的线程基元。(Ia18f2)
  • 表盘的构造现在是在后台线程中完成的,而所有的渲染都是在界面线程中完成的,为此,GlesRenderer 支持两个关联的上下文。WatchFaceControlClient.createHeadlessWatchFaceClient 和 WatchFaceControlClient.getOrCreateInteractiveWatchFaceClient 可能会在 WatchFaceService.createWatchFace 完成之前解析。后续的 API 调用会阻塞,直到完成表盘初始化。(Id9f41)
  • EXPANSION_DP 和 STROKE_WIDTH_DP 在 api.txt 中不再可见。(I54801)
  • 我们已设置为在出现错误时让 EditorSession.createOnWatchEditingSession 抛出 TimeoutCancellationException,而不是发送 null 会话。此外,EditorRequest.createFromIntent 和 EditorSession.createOnWatchEditingSession 的返回值现在为 NonNull。(I41eb4)

版本 1.0.0-alpha14

2021 年 5 月 18 日

发布了 androidx.wear:wear-*:1.0.0-alpha14版本 1.0.0-alpha14 中包含这些提交内容

新功能

  • EditorSession.openComplicationProviderChooser 现在返回 ChosenComplicationProvider,后者包含复杂功能 ID ComplicationProviderInfo 和包含提供程序选择器返回的任何额外 extra 的 Bundle。
  • 此外,我们也在循序渐进地将代码迁移到 Kotlin,并且大多数表盘 API 现在都是用 Kotlin 定义的。

API 变更

  • GlesRenderer 属性 eglContexteglDisplay 现在不可为 null。现在,任何 GL 错误均通过 GlesRenderer.GlesException 而不是 RuntimeException 进行报告。(Ib1005)
  • 我们已将 androidx.wear.watchface.complications.rendering.ComplicationDrawable 从 Java 迁移到 Kotlin (Ibc3eb)
  • 我们已将 androidx.wear.watchface.complications.rendering.ComplicationStyle 从 Java 迁移到 Kotlin (I3375e)
  • 我们为 EditorSession 中的每个复杂功能添加了复杂功能提供程序的相关信息。(I37f14)
  • 我们扩展了 EditorSession.openComplicationProviderChooser 的结果,现在包括所选的复杂功能返回的信息。(Iead6d)

Wear Complications 和 Watchface 版本 1.0.0-alpha13

2021 年 5 月 5 日

发布了 androidx.wear:wear-*:1.0.0-alpha13版本 1.0.0-alpha13 中包含这些提交内容

新功能

  • 表盘可以拥有除显示时间和复杂功能之外的其他重要视觉元素。为了针对这些元素提供屏幕阅读器支持,表盘现在可以通过渲染器的 additionalContentDescriptionLabels 属性指定无障碍功能 ContentDescriptionLabels。此外,为了便于控制 ContentDescriptionLabels 的排序,我们还为复杂功能添加了 accessibilityTraversalIndex。这可以通过 ComplicationsUserStyleSetting 进行修改。

  • 为鼓励开发者仔细考虑屏幕阅读器,我们要求必须将 ShortTextComplicationData.BuilderLongTextComplicationData.BuilderRangedValueComplicationData.BuildercontentDescription 字段传递到其构造函数中。如果将 ComplicationText.EMPTY 传递到 contentDescription 中,系统则会根据文本和标题自动生成 contentDescription

  • 现在,如果表盘在初始化期间抛出异常,WatchFaceControlClient.getOrCreateInteractiveWatchFaceClient 会抛出 ServiceStartFailureException。这样,您就可以更轻松地对表盘启动期间出现的问题做出诊断。

API 变更

  • 我们添加了对于在 ComplicationProviderInfo 中使用 null 组件名称的支持,这是支持较低版本的 Wear OS 所必需的。(I744d2)
  • 我们已将 androidx.wear.complications.SystemProviders 从 Java 迁移到 Kotlin。(Ia1f8b)
  • 我们隐藏了 android.support.wearable.complications 中所有来自公共 API 的类,并根据需要在 AndroidX 中创建了对应的封装容器。(I7bd50)
  • 我们已将 TimeDifferenceComplicationText.Builder 中的方法从 setMinimumUnit 重命名为 setMinimalTimeUnit。(I20c64)
  • 我们要求必须在构造函数中传递 ShortTextComplicationData.BuilderLongTextComplicationData.BuilderRangedValueComplicationData.BuildercontentDescription 字段。(I8cb69)
  • 我们已将 ComplicationProviderService.onComplicationUpdate 重命名为 onComplicationRequest,并已将此方法的 ID 和类型参数封装到数据 ComplicationRequest 中。对应的监听器及其方法已分别重命名为 ComplicationRequestListener 和 ComplicationRequestListener.onComplicationData。(Iaf146)
  • 我们从 ComplicationData 中移除了方法 isActiveAt,改为公开字段 validTimeRange。此方法调用可以替换为 validTimeRange.contains。(I65936)
  • 我们更改了 ComplicationProviderService.onComplicationActivated 方法的说明,以便接收 ComplicationType,而不是 int。(Idb5ff)
  • 将 ProviderUpdateRequester 从 Java 迁移到了 Kotlin。(Ibce13)
  • GlesRender.makeContextCurrent 现已公开。表盘代码可能需要在 render 和 onGlContextCreated 之外发出 gl 调用。由于可能同时存在交互式上下文和无头上下文,因此进行此调用很有必要。(I8a43c)
  • 如果在初始化期间抛出表盘,WatchFaceControlClient.getOrCreateInteractiveWatchFaceClient 现在会抛出 ServiceStartFailureException。此外,如果 createWatchFace 花费的时间超过 6 秒,WatchFaceService 现在会抛出异常。(I59b2f)
  • 我们移除了 GlesTextureComplication 的未使用 ID 属性。(I28958)
  • 表盘现在可以通过 Renderer 的 additionalContentDescriptionLabels 属性指定无障碍功能 ContentDescriptionLabels。除了控制 ContentDescriptionLabels 的排序之外,我们还为复杂功能添加了 accessibilityTraversalIndex。这可以通过 ComplicationsUserStyleSetting 进行修改。(Ib7362)
  • 扩充了有关在表盘中处理触摸事件的文档。(Iaf31e)

问题修复

  • 现在,EditorSession.getComplicationsPreviewData() 会为每个复杂功能返回映射,而非只为非空复杂功能返回映射。系统会为空的复杂功能使用 EmptyComplicationData 实例。(I1ef7e)

Wear Complications 和 Watchface 版本 1.0.0-alpha12

2021 年 4 月 21 日

发布了 androidx.wear:wear-*:1.0.0-alpha12版本 1.0.0-alpha12 中包含这些提交内容

新功能

表盘编辑器需要突出显示表盘的组成部分,以帮助说明正在配置手表的哪个方面。我们扩展了 RenderParameters,以便支持突出显示样式和复杂功能。新增了一个可选 HighlightLayer,旨在采用 α 透明度为表盘顶部加边(屏幕截图 API 可以为您完成此加边,或自行提供 HighlightLayer 以最大限度提高灵活性)。例如,假设您有一个样式可让您配置手表指针的外观,您在其 renderHighlightLayer 中的渲染程序可以围绕指针绘制轮廓。

为了鼓励支持复杂功能提供程序以提供无障碍功能,我们将 PhotoImageComplicationData.Builder、MonochromaticImageComplicationData.Builder 和 SmallImageComplicationData.Builder 的 contentDescription 字段设为必需的构造函数参数。添加了 ComplicationTapFilter 和 Complication.createEdgeComplicationBuilder,以支持边缘复杂功能(围绕屏幕边缘绘制)。边缘复杂功能的渲染和点击测试留给表盘完成。配套编辑器不支持边缘点击测试。

API 变更

  • 向 SystemProviders 中的常量添加了 PROVIDER_ 前缀。(I1e773)
  • 我们要求必须在构造函数中传递 PhotoImageComplicationData.BuilderMonochromaticImageComplicationData.BuilderSmallImageComplicationData.BuildercontentDescription 字段。(I9643a)
  • ProviderInfoRetriever.requestPreviewComplicationData 已重命名为 retrievePreviewComplicationData。(I911ee)
  • 已将 ComplicationProviderService 从 Java 迁移到 Koltin。(I849f2)
  • ComplicationProviderService.onBind 方法现已最终确定 (I39af5)
  • 我们恢复了 CanvasComplication 界面,并将 CanvasComplicaitonDrawableGlesTextureComplicationComplicationHighlightRenderer 移到了 wear-watchface-complications-rendering。(I84670)
  • 重构了 RenderParameters,以支持扩展的突出显示渲染。现在可以请求为样式以及全部或单个复杂功能渲染突出显示。此外,CanvasRenderer 和 GlesRenderer 现在有了新的抽象 renderHighlightLayer 方法,用于渲染编辑器请求的任何突出显示。Layer 已重命名为 WatchFaceLayer。(Ic2444)
  • 添加了 ComplicationTapFilterComplication.createEdgeComplicationBuilder,以支持边缘复杂功能。边缘复杂功能的渲染和点击测试留给表盘完成。编辑器中不支持点击测试。(Ia6604)
  • 对于 DoubleRangeUserStyleSettingLongRangeUserStyleSettingdefaultValuemaximumValueminimumValue 现在是 kotlin 属性。此外,移除了 toBooleanOption、toCoplicationOptions、toListOption 等 UserStyleSetting.Option 函数。(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[]>。为方便起见,已向公共 API 中添加 UserStyleData 类,并且现在会被 wear-watchface-client 和 wear-watchface-editor 使用。此外,CustomValueUserStyleSetting.CustomValueOption.value 现在是 byte[],而不是 String。(Iaa103)
  • UserStyleSettingUserStyleSetting.Option 现在分别使用 UserStyleSetting.IdUserStyleSetting.Option.Id 来存储其 ID,而非使用字符串。(I63f72)
  • InteractiveWatchFaceClient.SystemState 已重命名为 WatchUiState。(I6a4e0)
  • InteractiveWatchFaceWcsClientInteractiveWatchFaceSysUiClient 已合并,因为难以说明责任划分 (Iff3fa)
  • 为清楚起见,已重命名层枚举值。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)
  • 已从公共 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)
  • 为与 ComplicationsManager.displayPressedAnimation 保持一致,已将 InteractiveWatchFaceWcsClient.bringAttentionToComplication 重命名为 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 级别及更高版本,且今后不可为 null。(Id52bb)
  • EditorSession.launchComplicationProviderChooser 已重命名为 openComplicationProviderChooser。(I9d441)
  • EditorSession.createOnWatchEditingSessionAsync 已重命名为 createOnWatchEditingSession,现在是挂起函数。(Id257b)
  • EditorSession 上添加了几个缺失的 @UiThread 注解。(I6935c)
  • UserStyleSetting.affectsLayers 已重命名为 affectedLayers。(I6e22b)

版本 1.0.0-alpha10

2021 年 3 月 24 日

发布了 androidx.wear:wear-*:1.0.0-alpha10版本 1.0.0-alpha10 中包含这些提交内容

新功能

  • 现在可以在调用 WatchFaceService.createWatchFace 时创建开放式 gl 对象(例如纹理),因为 GlesRenderer 现在需要显式调用 initOpenGLContext(可在 createWatchFace 内完成)。

API 变更

  • IdAndComplicationData 不太好用,已从公共 API 中移除。使用该类的类和接口已进行重构。(I4c928)
  • 已将 ReferenceTime 替换为 CountUpTimeReferenceCountDownTimeReference 这两个看起来更一目了然的函数。(Ib66c6)
  • 添加了一些缺失的 @Px@ColorInt 注解。(I9bbc3)
  • Complication.complicationConfigExtras 现在不可为 null,默认为 Bundle.EMPTY。(Iad04f)
  • GlesRenderer 现在要求您在构建后调用 initOpenGLContext。此函数过去仅在内部使用,但现已在公共 API 上提供,以允许在 createWatchFace 内尽早调用 GL。(I726c2)
  • 移除了应该已不再需要的 Complication.setRenderer。(Ie992f)
  • Complicaiton.setComplicationBounds 已从公共 API 中移除。如果您需要调整某个复杂功能的位置,可以通过 ComplicationsUserStyleSetting 实现。(Ibd9e5)
  • ComplicationsManager.TapCallback.onComplicationSingleTapped 已重命名为 onComplicationTapped。(I3a55c)
  • ComplicationOutlineRenderer.drawComplicationSelectOutline 已重命名为 drawComplicationOutline。(I14b88)

版本 1.0.0-alpha09

2021 年 3 月 10 日

发布了 androidx.wear:wear-complications-*:1.0.0-alpha09androidx.wear:wear-watchface-*:1.0.0-alpha09版本 1.0.0-alpha09 中包含这些提交内容

新功能

  • WCS/SysUI 主机和表盘之间的接口已发生变化。现在,编辑器可以确定样式更改将启用还是停用复杂功能(启用表示为 initiallyEnabled 加上 ComplicationsUserStyleSetting 的任何替换状态)。此外,EditorService.closeEditor 还允许 SysUI 根据需要远程关闭表盘编辑器。
  • InteractiveWatchFaceWcsClient.setUserStyle 的基础上添加了一个更强大的命令 updateInstance,后者可以更改实例 ID、设置样式,还可一次性清除复杂功能。

API 变更

  • 已将 TraceEvent 添加到表盘库中。(I1a141)
  • ComplicationState 现在具有一个新属性 initiallyEnabled,该属性可用于预测切换样式的后果。(I8c905)
  • 我们已将 InteractiveWatchFaceWcsClient.setUserStyle 替换为一个更强大的命令 updateInstance,该命令可以更改实例 ID、设置样式,还可清除复杂功能。(Ife6f6)
  • WatchFaceClient 屏幕截图 API 不再压缩屏幕截图(因为处理速度太慢),而是把后处理工作留给调用方来完成。(Id35af)
  • 现在可以通过 EditorService.closeEditor 远程关闭表盘编辑器。(Ic5aa4)
  • 添加了可为 null 性注解 (Ic16ed)

版本 1.0.0-alpha08

2021 年 2 月 24 日

发布了 androidx.wear:wear-*:1.0.0-alpha08版本 1.0.0-alpha08 中包含这些提交内容

新功能

  • 有些表盘围绕一个或多个特定复杂功能进行设计,为支持此特性,我们添加了 Complication.Builder#setFixedComplicationProvider,若将其值设为 true,则可以阻止用户更改该槽中的复杂功能。
  • 表盘库优先采用 Kotlin 并使用协程(例如挂起函数)。对于 Java 用户,我们提供了 ListenableFuture 封装容器,以改进以下库中的互操作性:wear/wear-watchface-guava、wear/wear-watchface-client-guava 和 wear/wear-watchface-editor-guava。

API 变更

  • 我们移除了对点按两次复杂功能即可启动提供程序选择器的支持,该功能在表盘中并不常见,还会使 SysUI 的实现复杂化。(I3ef24)
  • 如果 Binder 意外关闭,ProviderInfoRetriever 方法可能会抛出 ServiceDisconnectedException。(Ib2cc4)
  • 从 Android 11 开始,对于何时可以运行 ProviderChooser 会有一些限制。此外,我们希望使用新的 wear-watchface-editor 构建编辑器,以便从公共 API 中移除 ComplicationHelperActivity。(Ib19c1)
  • 移除了 ComplicationText 静态方法以支持构建器。(Ibe399)
  • 我们针对各种表盘库挂起方法引入了 guava ListenableFuture 封装容器。(I16b2c)
  • 为了使 API 更加清晰,我们为 RenderParameters 添加了一个无需色调的辅助构造函数,以便与 LayerMode.DRAW_OUTLINED 以外的 LayerMode 配合使用。(I497ea)
  • 以前,ListUserStyleSetting 与其他构造函数不同,因为它具有默认参数。现在,所有 StyleSetting 子类构造函数均会优先采用默认值。(I9dbfd)
  • CanvasComplication 已重构为使用隐藏方法,从而更方便实现子类 (I5b321)
  • 我们重构了 EditorResult,以便使用新的 EditorService,并使用 EditorSession.broadcastState() 将更新流式传输到观测程序(通常为 SysUI)。(Ic4370)
  • 有些表盘围绕特定的复杂功能而构建,作为表盘的重要组成部分,其中提供程序是用户不可配置的。为了支持这一点,我们添加了 Complication.Builder#setFixedComplicationProvider。(I4509e)
  • EditorRequest 现在用于指定软件包名称而不是 ComponentName,因为 SysUI 不方便用它来查找编辑器的类名称,而且实际上我们只需要软件包名称。(Ib6814)

版本 1.0.0-alpha07

2021 年 2 月 10 日

发布了 androidx.wear:wear-*:1.0.0-alpha07版本 1.0.0-alpha07 中包含这些提交内容

新功能

  • WatchFaceService.createWatchFace 现在是一个挂起函数,这意味着表盘在等待 IO 时不再需要阻塞界面线程。wear-watchface-editor 和 wear-complications-data 也与之类似

API 变更

  • 移除了 PhotoImage 类并直接使用 Icon。(I8a70b)
  • 公开了 ComplicationData 的 validTimeRange。(I91366)
  • 进一步明确了图片类属性。(I81700)
  • wear-watchface-editor 和 wear-complications-data 已重构为使用挂起函数,而不是协程。Rx java 和未来的 compat 封装容器也会进行如此更改。(If3c5f)
  • 现在,如果 requestPreviewComplicationData 因连接问题或缺少 API 支持而无法返回预览数据,ProviderInfoRetriever 会抛出 PreviewNotAvailableException。(I4964d)
  • WatchFaceControlService::createWatchFaceControlClient 现在是一个挂起的函数,而 getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClient 现在称为 getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClientAsync 并会返回 Deferred<InteractiveWatchFaceWcsClient>。Rx java 和未来的 compat 封装容器也会如此。(I5d461)
  • 已将 CATEGORY_PROVIDER_CONFIG_ACTION 重命名为 CATEGORY_PROVIDER_CONFIG。(I7c068)
  • 请注意,createOnWatchEditingSession 现在是一个挂起的函数,因为有时,表盘主题在编辑器 Activity 启动后不久才能使用。(Ida9aa)
  • WatchFaceService.createWatchFace 现在是一个允许异步初始化的挂起函数,而之前,您必须得阻塞主线程。(If076a)
  • UserStyle 现在具有一个数组运算符,我们已将类型转换帮助程序添加到 UserStyle.Option 中。(I35036)
  • 我们修复了 UserStyle 有线格式会导致部分不稳定的隐藏 API 发生改变的编组错误。(I8be09)
  • 我们添加了 CustomValueUserStyleSetting,可让您在 UserStyle 中存储特定于应用的单个字符串。默认表盘主题编辑器会忽略此值。(Ic04d2)
  • 对于我们无法升级的 Android WearOS R 及更低版本,InstanceID 未在 Intent extra 中传递。为了解决这一问题,我们现在允许 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 类来获取 WatchFace 详细信息,并通过 Activity.setWatchRequestResult 记录结果。为了支持此功能,我们添加了 ProviderInfoRetriever.requestPreviewComplicationData,该类可使表盘编辑器能够请求预览 ComplicationData。预览 ComplicationData 的好处在于,它与实时数据不同,您不必担心在呈现编辑器时显示权限对话框(请注意,如果用户选择的提供程序带有权限,系统仍会提示他们授予权限)。

API 变更

  • ComplicationProviderInfo 现在包含提供程序的 ComponentName 字段。稍后,我们会向 WearOS 添加对该字段的支持,同时会将该字段设为 null。(Id8fc4)
  • 添加了 ProviderInfoRetriever.requestPreviewComplicationData,该类可使表盘编辑器能够请求预览 ComplicationData。这很实用,因为实时复杂功能可能需要权限,而您现在可以针对未处于活跃状态的复杂功能显示预览数据。(I2e1df)
  • ComplicationManager 现在是 WatchFace 构造函数的可选参数。为此,已对相应参数进行了重新排序。(I66c76)
  • 向复杂功能添加了一个可选的 Bundle。如果设置了该 Bundle,它会合并到发送来启动提供程序选择器 Activity 的 intent 中。(Ifd4ad)
  • 添加了一个新的 wear-watchface-editor 库,用于支持表盘和 SysUi 托管的编辑器。SysUI 将通过发送 intent 来启动这些编辑器。表盘 Activity 服务可以使用新的 EditorSession 类来获取 WatchFace 详细信息,并通过 Activity.setWatchRequestResult 记录结果。(I2110d)
  • LayerMode.DRAW_HIGHLIGHTED 现在称为 LayerMode.DRAW_OUTLINED,而 RenderParameters.highlightComplicationId 现在称为 RenderParameters.selectedComplicationId。RenderParameters.selectedComplicationId 除了绘制轮廓外,还会突出显示指定的复杂功能。(I90a40)
  • 以后,如果 WatchFaceControlClient.getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClient 服务在等待创建表盘主题时终止,可以通过 ServiceStartFailureException 进行解决。(I0f509)
  • EditorSession.complicationPreviewData 现在是 ListenableFuture,因为提取此数据是一个异步过程。(Iead9d)

问题修复

  • 我们即将从 complicationBounds 以及处于启用状态的 ComplicationOverlay 中移除未使用的字段。(I17b71)

版本 1.0.0-alpha05

2021 年 1 月 13 日

发布了 androidx.wear:wear-*:1.0.0-alpha05版本 1.0.0-alpha05 中包含这些提交内容。

新功能

表盘通常支持许多复杂功能配置,这些配置显示的复杂功能数量不等。为了简化其设置,我们现在通过对构建器调用 setEnabled(false) 来支持最初停用的复杂功能。日后可以通过 ComplicationsUserStyleSetting 启用这些复杂功能。

API 变更

  • ComplicationHelperActivity 现在接受 Collection<ComplicationType>,不再接受整数数组,这样更易于使用。(I1f13d)
  • ProviderInfoRetriever.retrieveProviderInfo 现在会正确返回 ListenableFuture<ProviderInfo[]>。(If2710)
  • 现在,您可以通过对构建器调用 setEnabled(false) 来创建最初停用的复杂功能。(Idaa53)
  • WatchFaceState 现在添加了一个仅适用于无头实例的 isHeadless 属性。(Ifa900)
  • ComplicationDrawable 现在选择性地支持同步加载可绘制对象。这个类由屏幕截图 API 使用。(I34d4a)

版本 1.0.0-alpha04

2020 年 12 月 16 日

发布了 androidx.wear:wear-*:1.0.0-alpha04版本 1.0.0-alpha04 中包含这些提交内容

新功能

  • 现在,Wear 表盘主题库支持按类型设置边界。例如,您可以切换为对 ComplicationType.LONG_TEXT 使用宽边界框,而对其他类型使用较细的边界框。

API 变更

  • 复杂功能现在使用 ComplicationBounds,该类封装了一个 Map<ComplicationType, RectF> 来支持按复杂功能类型定义尺寸。(I1ebe7)
  • 现在,您可以通过 RenderParameters 指定要在屏幕截图中使用的突出显示色调。(Iff42b)
  • 除了边界外,您现在必须使用 ComplicationsUserStyleSetting 修改复杂功能,这是为了确保操作系统保持同步。(I8dc5d)
  • Renderer 现在是一个密封的类。这意味着 CanvasRenderer 和 GlesRenderer 现在是 Renderer 的内部类。(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<string, string=""> 的重载,因此,构造 UserStyle 有可能不需要额外的 IPC 往返。(I24eec)</string,>

版本 1.0.0-alpha03

2020 年 12 月 2 日

发布了 androidx.wear:wear-*:1.0.0-alpha03版本 1.0.0-alpha03 中包含这些提交内容

新功能

Complication 类现在有一个 compicationData 属性,可以让表盘观察 ComplicationData 的更改。因此,可以根据复杂功能的类型更改复杂功能的尺寸。

现在,可以通过分配到 Renderer.interactiveDrawModeUpdateDelayMillis 来支持可变帧速率。因此,对于每秒运行一次简短动画的表盘,可以通过在没有动画时进入休眠状态来显著节省电量。

API 变更

  • BACKGROUND_IMAGE 已连同相关类一起重命名为 PHOTO_IMAGE。这种复杂功能并非专门用于背景,因此更改了名称。(I995c6)
  • DefaultComplicationProviderPolicy 现在已使用 IntDef 正确进行注解。(I3b431)
  • 隐藏的 TimeDependentText 类不再通过 ContentDescriptionLabel 提供,而是添加一个访问函数在指定时间获取文本。(Ica692)
  • ObservableWatchData 的构造函数现在是内部函数。(I30121b/173802666
  • Complication 现在具有可让表盘观察 ComplicationData 更改的 compicationData 属性。Complication 还新加了一个 isActiveAt 调用,可用于判断是否应在提供的日期时间呈现任何内容。(Ic0e2a)
  • SharedMemoryImage 已不在公共 API 中。(I7ee17)
  • WatchFace.overridePreviewReferenceTimeMillis 现在添加了一个 IntRange 注解,并且 getter 和 setter 具有一致的名称。(Ia5f78)
  • 为清楚起见,现在通过 Complication.createRoundRectComplicationBuilderComplication.createBackgroundComplicationBuilder 创建 Complication.Builder (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)

问题修复

  • 从复制 android.content.res.Configuration#isScreenRound() 的 DeviceConfig 中移除了屏幕形状 (Ifadf4)
  • WatchFaceControlClient.getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClient 改为接受 Map<String, String>,不再接受 UserStyle,因为在不知道架构的情况下很难创建 UserStyle,而架构只能在创建客户端后获取。(Iea02a)
  • 修复了 InteractiveWatchFaceWcsClient,以使用 ComplicationState 而非传输格式。(Icb8a4)
  • UserStyleSettings 现在是密封的类,因为表盘编辑器只能理解内置类。(I2d797)

版本 1.0.0-alpha02

2020 年 11 月 11 日

发布了 androidx.wear:wear-*:1.0.0-alpha02版本 1.0.0-alpha02 中包含这些提交内容

API 变更

  • ComplicationDetails 现在称为 ComplicationState 且已正确封装,同时穿戴式设备支持的用法 @ComplicationData.ComplicationType 已迁移至 androidx ComplicationType。(I4dd36)
  • 向 RenderParameters 添加了一个可选的 highlightedComplicationId 参数,以便您请求突出显示屏幕截图中的单个复杂功能。(I66ce9)
  • ComplicationProviderService 使用新样式的复杂功能 API 以实现一致性 (Id5aea)
  • getPreviewReferenceTimeMillis 现在从 DeviceConfig 获取参考时间。(I779fe)
  • 简化了 Renderer API Surface,可改为使用 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 的推荐做法是避免使用受保护的数据,因此我们重构了这个类,让其通过构造函数接收参数。(I61644)
  • 为清楚起见,重命名了 setBackgroundComplication。(I96fe3)
  • 为 ComplicationDrawable isHighlighted 及相关数据使用 Kotlin 属性 (I4dcc8)
  • 我们添加了 Complication#invalidate(),用于替代 ComplicationRenderer.InvalidateCallback (I4f4c6)
  • 这些 API 已在 WearableSupport 中弃用,并在此版本中移除。(Ib425c)
  • 重命名了一些 WatchFace 构建器方法,以强调它们 Wear 2.0 遗留产物的性质。(Idb775)
  • wear/wear-watchface 的第一个候选 Beta 版 API (Id3981)
  • 第一个受到跟踪的 API 版本。(Ie9fe6)
  • 正确隐藏 ComplicationDrawable.BorderStyle IntDef 并移至 ComplicationStyle,以实现一致性。(I27f7a)
  • 为 ComplicationStyle 方法添加了缺失的注释 (I838fd)
  • 此库没有公共 API Surface (I88e2b)
  • 所有样式的 Category Option 类现均已正确设置为“final”。(Ib8323)
  • 第一个受到跟踪的 API 版本。(I27c85)

问题修复

  • 更改了 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-alpha10

2021 年 6 月 2 日

发布了 androidx.wear:wear:1.2.0-alpha10版本 1.2.0-alpha10 中包含这些提交内容

新功能

  • Alpha10 对 CurvedText 和 ArcLayout 进行了改进,能更好地支持无障碍功能,并且还对 DismissibleFrameLayout 中的一些方法名称稍作调整,进行了重命名,以帮助阐明该 API。

API 变更

  • 我们重命名了 DismissibleFrameLayout 中的以下方法 (Ib195e):
    • Callback#onDismissed -> Callback#onDismissedFinished
    • isSwipeDismissible -> isDismissableBySwipe
    • isBackButtonDismissible -> isDismissableByBackButton
  • 我们已将以下方法定为最终方法 (Ib195e):
    • setBackButtonDismissible
    • setSwipeDismissible
    • registerCallback
    • unregisterCallback

bug 修复

  • 在 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_)开头。
  • 对于 CurvedTextViewsetMinSweepDegreessetMaxSweepDegrees 方法已替换为 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 类从穿戴式设备支持库迁移到 AndroidX。此 API 会提供通过 CalendarContract 获取的数据的子集,但会自动同步到穿戴式设备。(I6f2d7)

问题修复

  • 默认情况下,在可关闭的 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 类中添加了相关支持,允许在设备退出微光模式时指示可“自动恢复”Activity。此功能以前由在 WearableSupportLibrary 中已弃用的 WearableActivity 类提供。(I336ab)
  • OngoingActivity
    • 现在可在创建 OngoingActivity 时设置类别,例如 OngoingActivitiy.Builder.getCategory(String)
    • OngoingActivityData 现在具有表示 OngoingActivity 的构建时间的时间戳 OngoingActivityData.getTimestamp()
    • (I91cb4)
  • 添加了相关支持,允许通过更改布局参数来扩展 MarginLayoutParams(即 WearArcLayout.LayoutParams 可扩展 android.view.ViewGroup.MarginLayoutParams),从而对 WearArcLayout 的子项设置外边距。(I2cd88)
  • 将 WearCurvedTextView 的锚点类型默认值更改为 WearArcLayout.ANCHOR_CENTER(原为 WearArcLayout.ANCHOR_START)。这简化了弧线布局与曲线文本之间的协定,因为在默认情况下,曲线文本绘制时会在顶部 x 轴居中,而父弧线布局可以将其旋转到所需的位置。(I105ff)

版本 1.2.0-alpha03

2020 年 12 月 2 日

发布了 androidx.wear:wear:1.2.0-alpha03版本 1.2.0-alpha03 中包含这些提交内容

新功能

新增布局容器 DismissibleFrameLayout,旨在用于 Activity 内,负责处理返回按钮关闭和/或滑动关闭。至少必须添加一个监听器,以对关闭操作执行操作。监听器通常会从当前 Activity 中移除所属视图或 Fragment。提供了 setSwipeDismissible(boolean) 和 setBackButtonDismissible(boolean),用于直接控制这些功能。此新布局旨在替换现有的 SwipeDismissFrameLayout。

曲线微件现在可以处理触摸事件。WearArcLayout 内的正常微件将接收所有触摸事件,映射到其坐标空间。WearCurvedTextView(无论是否在 WearArcLayout 内)可以设置 onClick 和 onLongClick 处理程序。

Ongoing Activities 类现在是 VersionedParcelable,而不使用自定义的序列化/反序列化。现在需要静态图标和触摸 intent。

API 变更

  • WearCurvedTextView 的属性“sweepDegrees”已分成 minSweepDegrees 和 maxSweepDegrees,为此微件提供更灵活的布局。

版本 1.2.0-alpha02

2020 年 11 月 11 日

发布了 androidx.wear:wear:1.2.0-alpha02版本 1.2.0-alpha02 中包含这些提交内容

此版本首次添加了新的“Ongoing Activities API”。开发者可以使用此 API 指示一项长时间的活动(例如,健身运动或媒体播放)正在持续进行中。借助此 API,开发者可以提供周期性状态更新(例如,“跑步距离和时间”和“当前播放的曲目”),以显示在表盘上或应用启动器中。此功能的适用对象为日后启用“正在进行的活动”功能的设备。

API 变更

  • 新的 Ongoing Activities API,这在“不受支持的设备”上是一项空操作。(I69a31)

版本 1.2.0-alpha01

2020 年 10 月 28 日

发布了 androidx.wear:wear:1.2.0-alpha01版本 1.2.0-alpha01 中包含这些提交内容

新功能

  • 添加了 WearCurvedTextView 组件,以便沿着视图中可内切的最大圆圈的弧线轻松显示曲线文字。用法示例:
<androidx.wear.widget.WearCurvedTextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="example curved text"
        app:anchorAngleDegrees="180"
        app:anchorPosition="center"
        app:clockwise="false"
        style="@android:style/TextAppearance.Large"
/>

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>

Android Wear 中的拱形文字示例

(I536da)

Wear-Input 1.1.0

版本 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 变更

  • 用于获取或放置表示标题、取消、确认和处理中标签的 extra 的 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 类从穿戴式设备支持库迁移到 AndroidX。迁移的类已重命名为 RemoteInputIntentHelper,该类提供辅助函数,用于通过启动 intent 来支持遥控器输入。(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 功能从穿戴式设备支持库迁移到 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 功能从穿戴式设备支持库迁移到 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)