汽车应用

构建适用于 Android Auto 和 Android Automotive OS 的模板化应用程序。
最新更新 稳定版 候选版 Beta 版 Alpha 版
2024 年 6 月 26 日 1.4.0 - 1.7.0-beta01 -

声明依赖项

要添加对 Car App Library 的依赖项,您必须将 Google Maven 存储库添加到您的项目。阅读 Google 的 Maven 存储库 以了解更多信息。

在应用程序或模块的 build.gradle 文件中添加您需要的工件的依赖项

Groovy

dependencies {
    implementation "androidx.car.app:app:1.4.0"

    // For Android Auto specific functionality
    implementation "androidx.car.app:app-projected:1.4.0"

    // For Android Automotive specific functionality
    implementation "androidx.car.app:app-automotive:1.4.0"

    // For testing
    testImplementation "androidx.car.app:app-testing:1.4.0"
}

Kotlin

dependencies {
    implementation("androidx.car.app:app:1.4.0")

    // For Android Auto specific functionality
    implementation("androidx.car.app:app-projected:1.4.0")

    // For Android Automotive specific functionality
    implementation("androidx.car.app:app-automotive:1.4.0")

    // For testing
    testImplementation("androidx.car.app:app-testing:1.4.0")
}

有关依赖项的更多信息,请参阅 添加构建依赖项

反馈

您的反馈有助于改进 Jetpack。如果您发现新问题或对改进此库有想法,请告诉我们。在您创建新问题之前,请查看此库中 现有问题。您可以通过单击星形按钮为现有问题添加您的投票。

创建新问题

有关更多信息,请参阅 问题跟踪器文档

版本 1.7

版本 1.7.0-beta01

2024 年 6 月 26 日

androidx.car.app:app-*:1.7.0-beta01 已发布。版本 1.7.0-beta01 包含 这些提交。功能与 alpha01 中发布的功能相同,这些功能在下面重复列出

新功能

  • 带内容的 地图: 新模板为地图画布加上一个内容模板,目前可以是列表 / 网格 / 窗格 / 消息。
    • RoutePreviewPlaceListNavigationMapTemplate 现已弃用。模板将继续按原样工作。
    • 示例应用已更新,以显示 MapWithContent 的用法,而不是弃用的模板
  • 对话项目: 用于在汽车中显示对话(IM、短信)和助手朗读的新 API。
  • 车辆尺寸: 用于检索车辆尺寸的新 API(目前在 AAOS 上提供数据)。

API 更改

  • @ExperimentalCarApi 标签添加到 MediaPlaybackTemplate.Builder。(Ic1957
  • 在实验性功能中添加了一个新的 SectionedItemTemplate。 (I5958a)
  • 引入 CarAppApiLevel 8 (I3fa22)
  • 添加 MediaPlaybackTemplate,用于在 Car App Library 中的媒体播放期间显示内容。 (I3c10d)
  • 添加了新的 API,供应用程序检测系统是否在驾驶过程中支持后台音频。 (I0f868)

错误修复

  • 修复 CAL 客户端代码和 CAL 导航示例应用程序中某些内存泄漏和崩溃的实例。 (I55e04)
  • BaseCarAppActivityonDestroy 方法中,使用 if-null 检查替换 requireNotNull 实例,以避免崩溃。 (Iec676)

版本 1.7.0-alpha02

2024 年 4 月 17 日

androidx.car.app:app-*:1.7.0-alpha02 已发布。版本 1.7.0-alpha02 包含 这些提交

新功能

  • 添加了用于基于地图的模板的已弃用标志,MapWithContent 模板将在未来提供支持。

API 更改

  • 弃用旧的 MapTemplateRoutePreviewNavigationTemplatePlaceListNavigationTemplate,并鼓励使用新的 MapWithContentTemplate (Ib0a08)

版本 1.7.0-alpha01

2024 年 4 月 3 日

androidx.car.app:app-*:1.7.0-alpha01 已发布。我们已将库版本控制方案更改为与活动的 CarApi 版本匹配。这是为了根据开发人员的反馈减少基于命名方案的混淆。因此,我们将跳过版本 1.5/1.6,直接转到 1.7 版本 1.7.0-alpha01 包含 这些提交

新功能

  • 带有内容的地图:名为 MapWithContent 的新模板,支持在 地图内显示列表/网格/窗格/消息作为内容。
    • RoutePreviewPlaceListNavigation、地图模板现在已弃用。
    • 示例应用程序已更新,以使用 MapWithContent 显示已弃用模板的功能。
  • 会话项目:用于在车内显示会话(IM、短信)和助理朗读的新 API。
  • 车辆尺寸:用于检索车辆尺寸(目前在 AAOS 上的数据)的新 API。

API 更改

  • 将额外小的行图像类型标记为实验性。 (I5184b)
  • 添加了 CarInfo#fetchExteriorDimensions API,该 API 允许访问车辆外部尺寸信息,例如高度、宽度等。 (Ia40c5)
  • MapWithContentTemplate 中删除了 ExperimentalAPI 标签。 (I66db8)
  • GridItem#setTitle 参数更新为可空。 (I3d610)
  • GetHeader API 不需要 API 7,因为它向后兼容。 (I8c812)
  • ListTemplate 中添加对 Header 的支持,弃用 headerActionheaderTitleactionStrip。 (I7ae01)
  • GridTemplate 中弃用 titleheaderActionactionStrip,并添加对 Header 的支持。 (I41a9c)
  • 删除了对实验性 API 的级别 7 要求:徽章、GridTemplate 项目大小和图像形状的获取器/设置器、GridItem 用于获取/设置徽章的方法。 (Id71eb)
  • PaneTemplate 中弃用 titleheaderActionactionStrip,并添加新的 Header 支持。 (I23154)
  • 将媒体中心遥测从 BroadcastReceiver 更改为浏览自定义操作。 (I4185f)
  • MessageTemplate 中添加了对 Header 属性的支持。弃用对 ActionStripheaderActiontitle 的支持。 (Ie2de8)
  • 修改警报常量可见性。 (Icf8a8)
  • 从父模板中删除了 isLoading 属性。 (I651e6)
  • 添加额外内容以通知媒体应用程序主 UI 参数。 (I85ca2)
  • 将媒体中心分析功能添加到 MediaExtensions 中。 (I7ce28)
  • 添加了对行上额外小的图像的支持。 (I72c03)

错误修复

  • 更新了 ConversationItem 上的 javadoc,以说明消息应按从旧到新的顺序排序。 (I77a2a)
  • 更新了 ListTemplate 截断逻辑,以从 ConversationItem 中删除最旧的消息。 (Ie0a61)

版本 1.4

版本 1.4.0

2024 年 5 月 29 日

androidx.car.app:app-*:1.4.0 已发布。版本 1.4.0 是 1.4.0-rc02 的提升版本。

自 1.3.0 以来重要的变化

  • 为导航应用程序提供仪表盘地图渲染
  • 新的标签模板,用于改进应用程序布局/可用性
  • 支持自适应任务限制
  • 列表元素上的辅助操作

版本 1.4.0-rc02

2023 年 12 月 13 日

androidx.car.app:app-*:1.4.0-rc02 已发布。 版本 1.4.0-rc02 包含这些提交。。仅包含一些小修复。

错误修复

  • 更新了 ConversationItem 上的 javadoc,以说明消息应按从旧到新的顺序排序 (I77a2a)
  • 更新了 ListTemplate 截断逻辑,以从 ConversationItem 中删除最旧的消息。 (Ie0a61)

版本 1.4.0-rc01

2023 年 11 月 1 日

androidx.car.app:app-*:1.4.0-rc01 已发布,没有重大变化。 版本 1.4.0-rc01 包含这些提交。

版本 1.4.0-beta02

2023 年 9 月 20 日

androidx.car.app:app-*:1.4.0-beta02 已发布。 版本 1.4.0-beta02 包含这些提交。。这与 beta01 几乎相同,但将 compileSdk 要求降低到 33。

错误修复

  • 修复了在标签上加载屏幕无法正确显示的错误。 (cae860)

版本 1.4.0-beta01

2023 年 8 月 9 日

androidx.car.app:app-*:1.4.0-beta01 已发布。 版本 1.4.0-beta01 包含这些提交。

注意:1.4-beta01 需要 compileSdk34,该版本仍处于开发状态。1.4-beta02 将解决此问题。或者,您可以在项目的 settings.gradle 文件中添加 android.suppressUnsupportedCompileSdk=34,以安全地临时抑制警告。

新功能

API 更改

  • 参见 alpha02

版本 1.4.0-alpha02

2023 年 7 月 26 日

androidx.car.app:app-*:1.4.0-alpha02 已发布。 版本 1.4.0-alpha02 包含这些提交。

  • Alpha02 的发布旨在为即将发布的 beta01 做准备。

新功能

  • 为导航应用程序提供仪表盘地图渲染支持
  • 为应用程序添加了标签,以改进布局体验
  • 添加了列表/网格模板渲染选项
  • 为天气和通讯添加了新类别
  • 将多个 API 移动到下一个 CarApi 7 版本

API 更改

  • 将多媒体字段添加到 CarMessage 中。 (I5aaf6)
  • 将自定义操作添加到 Car App Library 中的 ConversationItem 中。 (Ie5ed6)
  • 添加额外内容以指示媒体项目使用沉浸式音频格式播放,并展示其内容格式徽标。 (Icb5bb)
  • 添加新的操作类型,ActionsConstraints API 支持撰写按钮。 (I31661)
  • set/getTemplate 更改为 set/getContentTemplate。 (Ica036)
  • 模板参数现在将为 @NonNull。更新了 MapWithContentTemplate API 文档。 (I0f8ed)
  • ListTemplate 中的 Actions 中删除了 @ExperimentalCarApi 标签,以便在 CAL 1.4 中启动。 (I2cfcb)
  • TabTemplate 中删除了 @ExperimentalCarApi 标签。 (Ifcb82)
  • 从行辅助操作和装饰中删除了 @ExperimentalCarApi 注释。 (I8487e)
  • 将活动标签内容 ID 添加到 TabTemplate 中,并弃用标签上的活动状态。 (I96932)
  • ItemImageShape 属性添加到 GridTemplate 中。 (Ibf431)
  • ItemSize 属性添加到 GridTemplate 中,该属性根据相对较小的、中等大小的、较大的桶控制网格项目的大小。 (Icdb3b)
  • 为开发人员开放 API 访问权限,以便获取当前屏幕堆栈的副本。 (I48107)
  • 将天气应用程序类别添加到 Car App Library 中。 (I2be44)
  • 将呼叫应用程序类别添加到 Car App Library 中。 (Icab33)
  • 用重载的 setImage() 方法替换了 GridItem.Builder#setBadge()。 (Id2000)
  • 将图标属性添加到徽章中。 (I629b2)
  • 添加方法以设置点徽章背景颜色。 (I6411c)
  • 将徽章属性添加到 GridItem 中,允许在 GridItem 图像顶部显示徽章。 (I95de7)
  • 添加了一个实验性的 Badge 对象,用于表示要显示在图像上方的徽章。(I9878d

版本 1.4.0-alpha01

2023 年 2 月 22 日

androidx.car.app:app-*:1.4.0-alpha01 已发布。 版本 1.4.0-alpha01 包含这些提交。

API 更改

  • 在 Car 应用库中为 GridTemplate 添加顶级操作。(Id0191
  • 在 Car 应用库中为 ListTemplate 添加顶级操作。(I9efab
  • 添加附加信息,将媒体项目的副标题或描述链接到其他媒体项目。(Ic84bf
  • 将行操作的 API 等级更新为 6。(Ie0a69
  • 将消息回调添加到 A4C。(Ie3986

错误修复

  • CarMessage 添加缺失的 Java 文档引用。(I5db1c
  • ConversationItemCarMessage 覆盖 equals()hashCode()。(I6fd10
  • 改进 ConversationItem.mMessages 验证(要求不为空,非空。(Iafc51
  • ConversationItem 字段添加 @Keep 注解。(I5d250
  • 更新行装饰和辅助操作的 Java 文档。(I000b6

版本 1.3

版本 1.3.0-rc01

2022 年 12 月 7 日

androidx.car.app:app-*:1.3.0-rc01 已发布。 版本 1.3.0-rc01 包含这些提交。

  • beta01 中的次要错误修复。无重大更改。

版本 1.3.0-beta01

2022 年 9 月 7 日

androidx.car.app:app:1.3.0-beta01androidx.car.app:app-projected:1.3.0-beta01androidx.car.app:app-automotive:1.3.0-beta01androidx.car.app:app-testing:1.3.0-beta01 已发布。 版本 1.3.0-beta01 包含这些提交。

新功能

除了在 Car 应用库 1.3.0-alpha01 中添加的功能外,以下功能已作为 beta01 的一部分添加(所有功能仅涉及主机端更改,没有 API 更改)

  • 即使用户处于 PlaceListNavigationTemplateRoutePreviewNavigationTemplateMapTemplate 中的基于地图的选择屏幕,浮动导航栏也会继续显示。这可以通过 NavigationManager.updateTrip() 更新导航信息来实现。
  • 使用 FLAG_DEFAULT 启用操作按钮,使其具有超时动画。超时后,此按钮将默认被点击。([API 5 - 所有模板]
  • Row 的副标题在汽车停放时不会被截断,但在行驶时会截断为两行。([API 5 - 所有模板]
  • 支持 ActionToggleRow 的禁用状态。([API 5 - 所有模板]

API 更改

  • 放宽 MapTemplate 列表中的约束,以支持可选择列表。(I961ed
  • 删除标题操作的约束,以允许自定义图标。(Iad28f
  • ActionsConstraints 中添加一个约束 setOnClickListenerAllowed()。它允许 Action 为除标准图标类型以外的操作设置 OnClickDelegate()。(TYPE_APP_ICONTYPE_BACKTYPE_PAN)(I3c745

错误修复

版本 1.3.0-alpha01

2022 年 7 月 27 日

androidx.car.app:app:1.3.0-alpha01androidx.car.app:app-projected:1.3.0-alpha01androidx.car.app:app-automotive:1.3.0-alpha01androidx.car.app:app-testing:1.3.0-alpha01 已发布。 版本 1.3.0-alpha01 包含这些提交。

标注了 API 等级 5 的功能与 Android Auto 7.9 及更高版本兼容。

新功能

  • API 等级 5:新的 MapTemplate,导航应用可以使用它在 map 旁边显示窗格或列表内容。(If5826If44b8
  • API 等级 5:新的 CarAudioRecord API,允许通过主机车辆的麦克风录制音频输入。(I5e71a
  • API 等级 5:新的 SuggestionManager API,允许应用向主机提供建议。(I5c103
  • API 等级 5:新的 Alert API,用于在 NavigationTemplate 上显示上下文通知。(I163a7I5ad70
  • API 等级 5:新的 HeaderMapController 组件,用于简化模板之间的重复使用。(If5826
  • 添加了 androidx.car.app.category.POI 作为启用 POI 应用的类别(并弃用了 androidx.car.app.category.PARKINGandroidx.car.app.category.CHARGING)。(I59da1

API 更改

  • API 等级 5:SurfaceCallback 接口中的新 onClick 方法,允许在地图上点击交互。(Ia9777
  • API 等级 5:新的标志 Action.FLAG_IS_PERSISTENTAction.FLAG_DEFAULT,用于描述 Action。(I96318I5ad70
  • API 等级 5:ActionRowToggle 组件的新启用/禁用状态(主机支持将在库的 1.3.0-beta01 版本发布时推出)。(Id8a09
  • API 等级 5:通过 PlaceListNavigationTemplate.BuilderRoutePreviewNavigationTemplate.Builder 上的 setHeader 优先使用新的 Header 组件,并弃用现有的 setTitlesetHeaderAction 方法。(I30e6a
  • API 等级 5:PlaceListMapTemplate.BuilderPlaceListNavigationTemplate.Builder 上的新 setOnContentRefreshListner 方法,用于与新 OnContentRefreshListner 接口的实现一起使用。
  • API 等级 5:新的 setTripTextsetTripIcon 用于 TravelEstimate.Builder,用于自定义行程估计卡。(Idcc6dIc620d
  • 添加了对 PaneTemplate 标题中的 CarIconSpan 的支持。(Ia1ee0
  • 添加了对 Row 标题和文本中 CarIconSpan 的支持。(Ic1e3c
  • 地图 ActionStrip 现在最多可以有四个操作。(If3522
  • 将 Car 应用 API 等级更新为 5。(I26b8e
  • 标题/标题现在是 PlaceListMapTemplatePlaceListNavigationTemplateRoutePreviewNavigationTemplateGridTemplateListTemplateLongMessageTemplateMessageTemplatePaneTemplateSignInTemplate 的可选部分。(I2078dIcadde

错误修复

  • 更新了 PaneTemplate 图像大小规则,使其成为正方形边界框。(Idd72e
  • 修复了在 State.DESTROYED 后修改屏幕堆栈时发生的异常。(I3c8eb
  • 添加了对检索应用图标的空检查。(I3f710
  • 更新 Car 硬件 API 以默认使用 STATUS_UNKNOWN 而不是 STATUS_UNAVAILABLE。(Ic9444
  • 在创建表面之前检查显示是否存在。(Ice027a
  • 修复 CarValue.equals() 错误,该错误涉及 STATUS_UNIMPLEMENTED。(I24451

版本 1.2

版本 1.2.0

2022 年 11 月 9 日

androidx.car.app:app-*:1.2.0 已发布。 版本 1.2.0 包含这些提交。

  • 这是一个稳定版,与 v1.2.0-rc01 相比没有更改。

版本 1.2.0-rc01

2022 年 3 月 23 日

androidx.car.app:app-*:1.2.0-rc01 已发布。 版本 1.2.0-rc01 包含这些提交。

  • 这是一个稳定版,与 v1.2.0-beta02 相比没有 API 更改。添加了新的实验性功能(API 等级 5),这些功能旨在用于未来的 Android Auto 和 Android Automotive 版本。

错误修复

  • 修复了在 State.DESTROYED 后修改屏幕堆栈时发生的异常。(I3c8eb
  • 更新了 CarSensors API,以指示它们未为 AAOS 实现。(Idd57b
  • 更新了 PlaceListMapTempalte.Builder#setCurrentLocationEnabled,以指示 ACCESS_COARSE_LOCATION 将足以满足该功能要求。(I510c2
  • 将环岛带角度机动类型的出口编号设为可选。(Ife7d1

版本 1.2.0-beta02

2022 年 1 月 26 日

androidx.car.app:app-*:1.2.0-beta02 已发布。 版本 1.2.0-beta02 包含以下提交。

使用此库版本构建面向 Android Automotive OS 平台的汽车应用程序现在可以发布到 Play 商店的公开测试频道。 有关更多详细信息,请参阅 开发指南

用 API 级别 4 及以下注释的功能与 Android Auto 7.2+ 和新的 Android Automotive OS 平台兼容。 有关注意事项,请参阅下面的 已知问题 部分。

API 更改

  • 向 POI 模板添加了实验性的 setOnContentRefreshListener API (I6bf22)

错误修复

  • 修复了当汽车主机取消绑定时 CarAppService 中的内存泄漏问题。 (I5c9ca, b/203594731)
  • 更新了 CarAppActivity 的 javadoc,以包含单任务启动模式的要求 (Id2f95)
  • 减少了恢复时的视觉故障。 (Iff7e0)

已知问题

  • PlaceListNavigationTemplateRoutePreviewNavigateTemplate 中的地图 ActionStrip 将在下一个 Android AutoAndroid Automotive OS 版本中开始可用。

版本 1.2.0-alpha02

2021 年 12 月 15 日

androidx.car.app:app-*:1.2.0-alpha02 已发布。 版本 1.2.0-alpha02 包含以下提交。

用 API 级别 4 注释的功能已从实验性升级为稳定,包括 PlaceListNavigationTemplateRoutePreviewNavigateTemplate 中的地图 ActionStripPane 中的 CarIcon 图像、QRCodeSignInMethod 以及在 Action 中设置渲染提示(例如标志)的能力。

新功能

  • 在 Android Auto 7.1+ 中,Pane 的项目限制已从 2 增加到 4。

API 更改

  • CarUnit 添加了一个实验性的 toString() 方法 (I36a3b)

错误修复

  • 修复了如果回调已死,则在 CarAppPermissionActivity 中发生的崩溃问题 (If9823)
  • Pane 的默认列表限制更改为 4 (I0068b)

版本 1.2.0-alpha01

2021 年 11 月 3 日

androidx.car.app:app-*:1.2.0-alpha01 已发布。 版本 1.2.0-alpha01 包含以下提交。

所有新的 v1.2.0 功能(API 4+)目前是实验性的,针对未来的 Android Auto 和 Android Automotive OS 版本。 有关更多详细信息,请参阅 开发指南

API 更改

  • 使 AutomotiveCarInfo API 成为实验性 API。 (Ia13e5)
  • 添加了汽车应用程序库 API 级别 4 (I2a2e7)
  • API 级别 4:添加了对在 Pane 中设置 CarIcon 的支持 (Ifcc12)
  • API 级别 4:添加了 QR 码登录方法 (Ib623e)
  • API 级别 4:向 Action 添加了 set/getFlags (Ic03ab)
  • API 级别 4:添加了对 PlaceListNavigationTemplateRoutePreviewNavigationTemplate 中的平移和缩放的支持 (I9d8a3)

错误修复

  • API 级别 4:添加机制以允许应用程序向汽车主机发送位置更新 (I3bad3)
  • 修复了主机验证逻辑无法正确查找 TEMPLATE_RENDERER 权限的问题 (I62618)

版本 1.1.0

版本 1.1.0

2021 年 12 月 15 日

androidx.car.app:app-*:1.1.0 已发布。 版本 1.1.0 包含以下提交。

这是一个稳定版本,与 v1.1.0-rc01 相比没有变化。 有关汽车应用程序库的新功能的更多详细信息,请参阅 v1.2.0-alpha02 的发行说明。

自 1.0.0 以来重要的更改

  • API 级别 2:SignInTemplateLongMessageTemplate,可用于车辆停放时的登录流程
  • API 级别 2:NavigationTemplate 中的地图交互性支持
  • API 级别 2:多长度文本支持,允许应用程序根据汽车屏幕尺寸提供多个版本的字符串以供显示。
  • API 级别 3:CarHardwareManager,可用于查询车辆的硬件数据,例如型号和制造商、油量水平和其他传感器。

版本 1.1.0-rc01

2021 年 11 月 3 日

androidx.car.app:app-*:1.1.0-rc01 已发布。 版本 1.1.0-rc01 包含以下提交。

这是一个稳定版本,与 v1.1.0-beta01 相比没有 API 变化。 已添加了新的实验性功能(API 级别 4),这些功能适用于未来的 Android Auto 版本。 有关实验性 API 的更多详细信息,请参阅 v1.2.0-alpha01 的发行说明。

版本 1.1.0-beta01

2021 年 9 月 1 日

androidx.car.app:app-*:1.1.0-beta01 已发布。 版本 1.1.0-beta01 包含以下提交。

所有 v1.1.0 功能(API 2+)与 Android Auto 6.7 及更高版本完全兼容。 有关更多详细信息,请参阅 开发指南

API 更改

  • 删除了 Manager 作为公共接口 (Ie381b)
  • 添加了为权限请求设置自定义品牌背景的能力 (I74b76)
  • 添加了 ScreenManager.getStackSize (I0b16a)
  • 删除了明确接受 TestCarContextScreenController 构造函数 (Iefebc)

错误修复

  • 在创建 CarHardwareManager 时添加了 API 级别检查 (I48f9b)
  • 添加了对 API 中的无效 CarSpan 用法的检查 (I65ae6)
  • 修复了在创建过程中如果 Screen 被标记为已完成,它将使堆栈处于损坏状态的问题 (I81b13)
  • 修复了如果 CarAppExtender 中有带图标的操作,则 CarNotificationManager.notify 将为 AutomotiveOS 记录错误的问题 (I3633d)
  • 添加了应用程序和主机之间的握手方法以建立 API 版本 (I7d6f8)

版本 1.1.0-alpha02

2021 年 7 月 21 日

androidx.car.app:app-*:1.1.0-alpha02 已发布。 版本 1.1.0-alpha02 包含以下提交。

新功能

  • API 级别 3:添加了 CarHardwareManager,可用于查询车辆的硬件数据,例如型号和制造商、油量水平和其他传感器。 目前,此功能仅在公开测试频道中可用于 Android Auto 6.7+。 在桌面环境中测试此功能需要一个新版本的 Desktop Head Unit,该版本将单独发布。 有关新版本何时可用的详细信息,请关注 为汽车测试 Android 应用程序页面
  • 请遵循 开发指南 和库参考,以获取有关如何在与 API 级别 3 兼容的汽车主机中使用这些功能的更多详细信息和设计指南。

API 更改

  • SessionControllerScreenController 生命周期方法合并到一个 moveToState 方法中 (I1ed00)
  • 添加了 CarContext#getHostInfo() (I8977e)
  • 删除了弃用的字段。 (I67168)
  • 更新了 SessionControllerScreenController 以直接公开构造函数 (Iabf22)
  • 删除了 PinSignInMethod.BuilderProviderSignInMethod.Builder (I9f0cb)
  • 添加了 'setCarAppResult()' 以启用在 AAOS 中使用模板应用程序 'for result' (I37741)
  • @MainThread 注释了 CarHardware 接口。 (Ib2f85)
  • OnCarDataListener 重命名为 OnCarDataAvailableListener (I518ca)
  • 更新了 CarInfoSpeedMileage 的方法名称和 javadoc。 (I86672)
  • Toll 重命名为 TollCard。 (I3e7c8)
  • 删除了弃用的 PinSignInMethod.getPin,它已被 PinSignInMethod.getPinCode 替换 (I996ce)
  • 删除了 OnInputCompletedListener(已替换为 InputCallback)。 (Ib5be1)
  • PinSignInMethod 更改为接受 CharSequence 而不是 String (I275d5)

错误修复

  • 汽车硬件的 javadoc 修复。 (I2abbc)

外部贡献

已知问题

  • SignInTemplate 中,使用 InputSignInMethod 可能会导致汽车主机出现 NullPointerException。 这将在下一个库版本中解决。 要解决此问题,请在应用程序的 Proguard 配置中包含以下行:-keep class androidx.car.app.model.signin.InputSignInMethod { *; }

版本 1.1.0-alpha01

2021 年 6 月 16 日

androidx.car.app:app:1.1.0-alpha01androidx.car.app:app-automotive:1.1.0-alpha01androidx.car.app:app-testing:1.1.0-alpha01 已发布。版本 1.1.0-alpha01 包含这些提交。

新功能

  • API 级别 2:新的 SignInTemplateLongMessageTemplate,可在车辆处于停车状态时用于登录流程。
  • API 级别 2:在 NavigationTemplate 中新增地图交互支持。
  • API 级别 2:新增多长度文本支持,允许应用根据汽车屏幕尺寸提供多个版本的字符串以供显示。
  • 请遵循 开发指南 和库 Javadoc,获取有关如何在与 API 级别 2 兼容的汽车主机中使用这些功能的更多详细信息和设计指南。

API 更改

  • 将所有 *Callback 接口方法设为默认,并重命名 OnRequestPermissionsCallbackOnRequestPermissionsListener (Ib3ec9)
  • 更新了 androidx.car.app.hardware 类,以移除不必要的构建器和参数类。(I67beb)
  • androidx.car.app.hardware 类添加了对汽车特定数据(例如油量、电池和速度)的访问权限。(Iff3c9)
  • MessageTemplate 中添加了 ActionStrip 支持。(Ida657)
  • MessageTemplate 中添加了 setLoading。(I2a4b5)
  • ConnectionToCar 重命名为 CarConnection (Ife9bd)
  • 更改了 NavigationTemplate 以返回显式的 PanModeDelegate (I13877)
  • 更新了 CarContext.requestPermissions 的参数顺序。(Ib890a)
  • 更新了元数据密钥,以将最小汽车 API 级别定义为 androidx.car.api.minCarApiLevel (Ib0d41)
  • 创建了一个允许观察汽车连接状态的 API (Ifc935)
  • 添加了对设置 Action 的切换的支持,并添加了平移模式 Action 类型 (Ica6af)
  • 创建了 CarNotificationManager,以支持在汽车中发送通知 (I10d7a)
  • 添加了 ConstraintManager,用于从主机提供列表限制 (I8690e)
  • NavigationTemplate 中添加了平移模式和地图操作栏 API (I77aa6)
  • SurfaceCallback 中添加了平移和缩放 API,用于导航应用程序 (Id5e9d)
  • CarAppApiLevel 更新为 2 (Ic1540)
  • 添加了从 CarAppService 请求权限的功能 (I5421e)
  • 为多文本 API 添加了 RequiresCarApi(2) 注释 (Iacb62)
  • 允许在半列表模板标题中使用多个文本变体 (Ib8df7)
  • 添加了新的 LongMessageTemplate(需要汽车 API 级别 2)(Ic5cee)

错误修复

  • 更新了图像大小要求,以考虑更大的汽车屏幕 (I116dc)
  • 不允许在模板主体中添加超过 2 个操作 (I32157)
  • 确保汽车应用程序库中的所有 PendingIntent 创建都设置了标志。(If84feb/186394900)
  • 更新了 Javadoc,以允许 Row 的文本在刷新时更改 (If3f9c)
  • androidx.activity:activity:1.2.0 现在是 API 依赖项 (Id1cb9)
  • 使 SignInTemplateLongMessageTemplate 要求在主体中使用仅限于停车的操作,并更新了文档以指示它们仅在车辆处于停车状态时显示 (Iddaa9)
  • 修复了在启动期间弹出 Screen 时出现的异常 (Ifcf40b/184664896)
  • 允许在 ForegroundCarColorSpan 中使用自定义文本颜色 (I69e59)
  • 修复了在 ScreenON_DESTROY 之后观察到 Session 上的 ON_DESTROY 的问题 (I52e01b/183696617)
  • 更新了 Javadoc,说明何时允许将 TravelEstimate 的剩余时间设置为未知时间。(I99610b/183632456)
  • 更新了 Action,以支持在标题和任何自定义背景颜色中使用 ForegroundColorSpan (I578e4)
  • 如果在执行器执行之前清除了回调,则不要执行 NavigationManagerCallback#onStopNavigation (I7fc5eb/181143772)
  • 修复了一个问题,该问题要求应用程序显式地依赖于 lifecycle-common-java8 (I8b8c8)

已知问题

  • SignInTemplate 中,当用户想要确认输入时,屏幕键盘会显示“搜索”图标,而不是“输入”图标。作为解决方法,用户可以访问在输入字段处于焦点时激活的手机键盘。
  • 在 Android Auto 6.5 版本中,SurfaceCallback 中的平移和缩放回调可能会对某些触摸手势进行错误调用。

汽车应用测试版 1.0.0

版本 1.0.0-alpha01

2021 年 3 月 24 日

androidx.car.app:app-testing:1.0.0-alpha01 已发布。版本 1.0.0-alpha01 包含这些提交。

这是之前闭源测试库的第一个 Jetpack 版本。有关如何在测试中使用此库的信息,请参考我们的 示例

新功能

  • 已移除模型类的控制器。模型 getter 现在是公共 API 表面的部分,这允许验证在构建器中设置的值。
  • 之前名为 CarAppServiceController 的项已被新的 SessionController 替换,用于测试与连接到主机的生命周期相关的逻辑。

版本 1.0.0

版本 1.0.0

2021 年 4 月 21 日

androidx.car.app:app:1.0.0 已发布。版本 1.0.0 包含这些提交。

1.0.0 的主要功能

  • 4 月初,我们 宣布 应用程序可以使用 androidx.car.app:app:1.0.0-rc01 开始发布到生产通道。汽车应用程序库 v1.0.0 现在稳定,与 Android Auto 6.1 及更高版本完全兼容。
  • 请遵循 开发指南,了解有关如何使用该库为 Android Auto 构建导航、停车和充电应用程序的详细信息。

错误修复

  • 修复了在启动期间弹出 Screen 时出现的异常 (70aae1b/184664896)
  • 修复了在 ScreenON_DESTROY 之后观察到 Session 上的 ON_DESTROY 的问题 (0ceecbb/183696617)

版本 1.0.0-rc01

2021 年 3 月 24 日

androidx.car.app:app:1.0.0-rc01 已发布。版本 1.0.0-rc01 包含这些提交。

错误修复

  • 修复了由于 NavigationManagerCallback#onStopNavigation 在清除回调后被调用而导致的竞争条件错误。如果在回调执行器实际运行之前清除了回调,就会发生这种情况 (I7fc5eb/181143772)
  • 修复了一个问题,该问题要求应用程序显式地依赖于 lifecycle-common-java8 (I8b8c8)
  • 修复了当应用程序在已移除回调的情况下收到 stopNavigation 调用时抛出的 NullPointerException (Ib8b89b/181143772)
  • 对不在至少处于 CREATED 状态的生命周期中的应用程序,不向其调度调用的改进。(I86965b/179800224b/177921120)
  • 修复了应用程序清单中指定无效的最小 API 时导致抛出异常,从而在主机上导致 ANR 的问题。(Iffeddb/174231592)

版本 1.0.0-beta01

2021 年 2 月 24 日

androidx.car.app:app:1.0.0-beta01 已发布。版本 1.0.0-beta01 包含这些提交。

这是之前闭源库的第一个 Jetpack 版本,与 Android Auto 6.1 及更高版本兼容。请遵循 开发指南,了解有关如何使用该库构建汽车应用程序的详细信息。

新功能

错误修复

  • 修复了按顺序弹出屏幕时恢复错误 Screen 的问题。(b/177590791)