汽车应用

为 Android Auto 和 Android Automotive OS 构建模板化应用。
最新更新 稳定版发布 发布候选版 Beta 版发布 Alpha 版发布
2025 年 5 月 20 日 1.4.0 1.7.0-rc01 - 1.8.0-alpha01

声明依赖项

要添加对汽车应用库的依赖项,您必须将 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.8

版本 1.8.0-alpha01

2025 年 5 月 20 日

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

新功能

所有功能目前仅在 Android Auto 上可用。相同的 API 将在 AAOS 中使用。

  • 添加了媒体类别以创建自定义应用,作为基于 MediaBrowse 的替代方案。
  • 添加了播放模板,允许在媒体播放视图中控制顶部操作(仅适用于媒体应用)。
  • 在 Android Auto 上增加了对分段项目模板的全面支持,允许列表/网格组成的子分段的组合。
  • 为网格项目添加了超大尺寸。

API 变更

  • 为网格项添加了一个额外的尺寸选项(I35b58
  • 为汽车应用库添加了媒体应用的类别和权限(I8e100
  • 添加了新的 API,用于应用检测 CarAppLibrary 媒体类别是否受支持(Ic4b08
  • 为 Section 添加了 OnItemVisibilityChangeListener。(I2c2fd
  • 添加了 Mileage#getOdometerKilometers 并废弃了 Mileage#getOdometerMetersIc91af

Bug 修复

  • 修复了 CarIcon.setTint 的 Javadoc 中的拼写错误(Iabd72
  • 更新了 Row.Builder#setNumericDecoration 文档,以反映不支持 1 个操作 + 数字装饰;但支持 0 个或 2 个操作 + 数字装饰。(Ic0b08
  • 为网格项添加了徽章图标背景颜色字段。(I2b6ae

版本 1.7

版本 1.7.0-rc01

2025 年 1 月 15 日

androidx.car.app:app-*:1.7.0-rc01 已发布,与 beta03 相比没有显著变化。版本 1.7.0-rc01 包含这些提交

  • 这是第一个包含 beta03 中修补的 CVE-2024-10382 修复程序的 RC 版本。如果您使用的版本低于 1.7-beta03,请更新到此版本。

版本 1.7.0-beta03

2024 年 11 月 13 日

修复了一个安全漏洞和其他常规 bug 修复。如果您使用的是较低版本,请更新到此版本

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

API 变更

  • 更新 CAL 序列化/反序列化代码,使其仅处理声明了 @CarProtocol 注解的对象。(Ic730e
  • CarAppExtender 现在可用于扩展框架 Notification.Builder,而不仅仅是 NotificationCompat.Builder。(Id3ad7
  • 添加 KEY_EXCLUDE_MEDIA_ITEM_FROM_MIXED_APP_LIST 额外项。(I201f9
  • 废弃 ConversationItem 上的空 Builder 构造函数,并替换为接受所需参数的构造函数。还添加了一个检查以防止空消息。(Ic8221

Bug 修复

  • 确保 PlaceList 地图使用字符串(仅文本)标题。(Ic992f
  • 此库现在使用 JSpecify nullness annotations,它们是类型使用注解。Kotlin 开发者应使用以下编译器参数来强制执行正确用法:-Xjspecify-annotations=strict(从 Kotlin 编译器 2.1.0 版开始,这是默认值)。(Ib5367, b/326456246)

版本 1.7.0-beta02

2024 年 9 月 18 日

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

API 变更

  • 添加 KEY_ROOT_HINT_MEDIA_HOST_VERSION 额外项(I8796b
  • TabContents.Api8Builder 类替换为 TabContents.Builder 类中的 @ExperimentalCarApi 构造函数(I26fbe
  • CarMediaApp 添加意图操作和额外项(I50782
  • 将消息传递 API 标记为非实验性(I0b070
  • SectionedItemTemplate 添加远程项目加载(允许加载长列表而不会崩溃)(I0d122
  • 在 API 8 中,将 SectionedItemTemplate 添加到 TabTemplate 支持的模板列表。(Idc5d6

Bug 修复

  • 移除了对新平台 API 手动概述访问的需要,因为在使用 AGP 7.3 或更高版本(例如 R8 版本 3.3)的 R8 时,以及在使用 AGP 8.1 或更高版本(例如 D8 版本 8.1)的所有构建中,这会自动通过 API 建模发生。建议不使用 AGP 的客户端更新到 D8 版本 8.1 或更高版本。有关更多详细信息,请参阅本文。(I9496c, b/345472586

版本 1.7.0-beta01

2024 年 6 月 26 日

androidx.car.app:app-*:1.7.0-beta01 已发布。版本 1.7.0-beta01 包含这些提交。功能与 alpha01 中发布的功能相同,如下所述:

新功能

  • 带内容的地图: 新模板包含地图画布和内容模板,目前可以是列表/网格/窗格/消息。
    • RoutePreviewPlaceListNavigationMapTemplate 现已废弃。模板将继续按原样工作。
    • 示例应用已更新,以显示 MapWithContent 的用法,而不是废弃的模板。
  • 会话项: 用于在车内显示会话(即时消息、短信)和 Assistant 朗读的新 API。
  • 车辆尺寸: 用于检索车辆测量数据(目前仅限 AAOS 上的数据)的新 API。

API 变更

  • @ExperimentalCarApi 标记添加到 MediaPlaybackTemplate.Builder。(Ic1957
  • 在实验版中添加了一个新的 SectionedItemTemplate。(I5958a
  • 引入 CarAppApiLevel 8I3fa22
  • 添加了 MediaPlaybackTemplate,用于在汽车应用库中媒体播放期间显示内容。(I3c10d
  • 添加了新的 API,用于应用程序检测系统是否支持在驾驶时进行后台音频播放(I0f868

Bug 修复

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

版本 1.7.0-alpha02

2024 年 4 月 17 日

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

新功能

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

API 变更

  • 废弃旧的 MapTemplateRoutePreviewNavigationTemplatePlaceListNavigationTemplate,并鼓励使用新的 MapWithContentTemplateIb0a08

版本 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 的废弃模板的功能。
  • 会话项:用于在车内显示会话(即时消息、短信)和 Assistant 朗读的新 API。
  • 车辆尺寸:用于检索车辆测量数据(目前仅限 AAOS 上的数据)的新 API。

API 变更

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

Bug 修复

  • 更新 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 以来重要变更

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

版本 1.4.0-rc02

2023 年 12 月 13 日

androidx.car.app:app-*:1.4.0-rc02 已发布。版本 1.4.0-rc02 包含这些提交。。仅进行了少量修复。

Bug 修复

  • 更新 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。

Bug 修复

  • 修复了选项卡上加载屏幕未正确显示的问题。(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 将纠正此问题。或者,您可以将 android.suppressUnsupportedCompileSdk=34 添加到项目的 settings.gradle 文件中,以安全地暂时抑制警告。

新功能

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

  • 将多媒体字段添加到 CarMessageI5aaf6
  • 在汽车应用库中为 ConversationItem 添加自定义操作(Ie5ed6
  • 添加额外项以指示媒体项以沉浸式音频格式播放并展示其内容格式徽标(Icb5bb
  • 添加新的操作类型,ActionsConstraints API 以支持 Compose 按钮。(I31661
  • set/getTemplate 更改为 set/get ContentTemplateIca036
  • 模板参数现在将是 @NonNull。更新了 MapWithContentTemplate API 文档(I0f8ed
  • 在 CAL 1.4 发布中移除了 ListTemplate 中 Actions 的 @ExperimentalCarApi 标签(I2cfcb
  • 移除了 TabTemplate@ExperimentalCarApi 标签(Ifcb82
  • 从 Row 次要操作和装饰中删除 @ExperimentalCarApi 注解(I8487e
  • TabTemplate 添加了活动选项卡内容 ID,并废弃了选项卡上的活动状态(I96932
  • GridTemplate 添加了 ItemImageShape 属性(Ibf431
  • GridTemplate 添加了 ItemSize 属性,它根据相对的小、中、大桶控制网格项的大小。(Icdb3b
  • 向开发者开放 API 访问,以获取当前屏幕堆栈的副本。(I48107
  • 为汽车应用库添加了天气应用类别(I2be44
  • 为汽车应用库添加了呼叫应用类别(Icab33
  • GridItem.Builder#setBadge() 替换为重载的 setImage() 方法(Id2000
  • 为 Badge 添加图标属性(I629b2
  • 添加设置点状徽章背景色的方法(I6411c
  • GridItem 添加了 Badge 属性,允许在 GridItem 图像上方显示徽章。(I95de7
  • 添加了一个实验性的 Badge 对象,它将代表一个显示在图像上的徽章。(I9878d

版本 1.4.0-alpha01

2023 年 2 月 22 日

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

API 变更

  • 在汽车应用库中向 GridTemplate 添加了顶级操作(Id0191
  • 在汽车应用库中向 ListTemplate 添加了顶级操作(I9efab
  • 添加额外项以将媒体项的副标题或其描述链接到其他媒体项(Ic84bf
  • 将行操作的 API 级别更新为 6。(Ie0a69
  • 为 A4C 添加消息回调(Ie3986

Bug 修复

  • 添加了 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 起的小 bug 修复。无重大变更。

版本 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 包含这些提交。

新功能

除了汽车应用库 1.3.0-alpha01 中添加的功能外,以下功能已作为 beta01 的一部分添加(此处所有功能仅涉及主机端更改,不涉及任何 API 更改)

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

API 变更

  • 放宽 MapTemplate 列表中的限制以支持可选择列表(I961ed
  • 删除 Header Actions 的限制,以允许使用自定义图标。(Iad28f
  • ActionsConstraints 中添加了约束 setOnClickListenerAllowed()。它允许 Action 设置 OnClickDelegate() 到除标准图标类型(TYPE_APP_ICONTYPE_BACKTYPE_PAN)之外的操作。(I3c745

Bug 修复

版本 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,可供导航应用用于在地图旁边显示窗格或列表内容(If5826, If44b8
  • API 级别 5:新的 CarAudioRecord API,允许通过主机车辆的麦克风录制音频输入(I5e71a
  • API 级别 5:新的 SuggestionManager API,允许应用向主机提供建议(I5c103
  • API 级别 5:新的 Alert API,用于在 NavigationTemplate 上显示上下文通知(I163a7, I5ad70
  • 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 的新标志 Action.FLAG_IS_PERSISTENTAction.FLAG_DEFAULTI96318, I5ad70
  • 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:TravelEstimate.Builder 上的新 setTripTextsetTripIcon,用于自定义旅行估算卡(Idcc6d, Ic620d
  • PaneTemplate 的标题中添加了对 CarIconSpan 的支持(Ia1ee0
  • Row 的标题和文本中添加了对 CarIconSpan 的支持(Ic1e3c
  • 地图 ActionStrip 现在最多可以有四个操作(If3522
  • 更新了汽车应用 API 级别至 5(I26b8e
  • 现在,PlaceListMapTemplatePlaceListNavigationTemplateRoutePreviewNavigationTemplateGridTemplateListTemplateLongMessageTemplateMessageTemplatePaneTemplateSignInTemplate 的标题/头是可选的(I2078d, Icadde

Bug 修复

  • 更新了 PaneTemplate 图像大小规则,使其成为方形边界框(Idd72e
  • 修复了 State.DESTROYED 之后修改屏幕堆栈时发生的异常。(I3c8eb
  • 添加了获取应用图标的空检查(I3f710
  • 更新汽车硬件 API 默认使用 STATUS_UNKNOWN 而不是 STATUS_UNAVAILABLEIc9444
  • 在创建表面之前检查显示器是否存在(Ice027a
  • 修复涉及 STATUS_UNIMPLEMENTEDCarValue.equals() bug(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 版本。

Bug 修复

  • 修复了 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

Bug 修复

  • 修复了当汽车主机解除绑定时 CarAppService 中的内存泄漏。(I5c9ca, b/203594731
  • 更新了 CarAppActivity javadoc,以包含 singleTask 启动模式的要求(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

Bug 修复

  • 修复了 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 标记为实验性。(Ia13e5
  • 添加了汽车应用库 API 级别 4(I2a2e7
  • API 级别 4:增加了在 Pane 中设置 CarIcon 的支持(Ifcc12
  • API 级别 4:增加了二维码登录方法(Ib623e
  • API 级别 4:向 Action 添加了 set/getFlags(Ic03ab
  • API 级别 4:在 PlaceListNavigationTemplateRoutePreviewNavigationTemplate 中增加了对平移和缩放的支持(I9d8a3

Bug 修复

  • 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.getStackSizeI0b16a
  • 移除了显式接受 TestCarContextScreenController 构造函数(Iefebc

Bug 修复

  • 创建 CarHardwareManager 时添加了 API 级别检查(I48f9b
  • 在整个 API 中添加了对无效 CarSpan 使用的检查(I65ae6
  • 修复了一个问题:如果在创建 Screen 期间将其标记为完成,它将使堆栈处于损坏状态(I81b13
  • 修复了 CarNotificationManager.notify 在 AutomotiveOS 上如果 CarAppExtender 中有带图标的操作时会记录错误的问题(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.BuilderI9f0cb
  • 添加了“setCarAppResult()”以实现在 AAOS 中使用模板化应用“for result”(I37741
  • 使用 @MainThread 注解 CarHardware 接口。(Ib2f85
  • OnCarDataListener 重命名为 OnCarDataAvailableListenerI518ca
  • 更新了 CarInfoSpeedMileage 方法名称和 javadoc。(I86672
  • Toll 重命名为 TollCard。(I3e7c8
  • 删除了已废弃的 PinSignInMethod.getPin,该方法已被 PinSignInMethod.getPinCode 替换(I996ce
  • 移除了 OnInputCompletedListener(已替换为 InputCallback)。(Ib5be1
  • 更改了 PinSignInMethod 以接受 CharSequence 而不是 StringI275d5

Bug 修复

  • 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 接口方法设为默认,并将 OnRequestPermissionsCallback 重命名为 OnRequestPermissionsListenerIb3ec9
  • 更新了 androidx.car.app.hardware 类,以移除不必要的构建器和参数类。(I67beb
  • 添加了 androidx.car.app.hardware 类,用于访问汽车特定数据,如燃油、电池和速度。(Iff3c9
  • MessageTemplate 中添加了 ActionStrip 支持(Ida657
  • MessageTemplate 中添加了 setLoading。(I2a4b5
  • ConnectionToCar 重命名为 CarConnectionIfe9bd
  • 更改了 NavigationTemplate 以返回显式的 PanModeDelegateI13877
  • 更新了 CarContext.requestPermissions 的参数顺序(Ib890a
  • 更新了元数据键以将最小汽车 API 级别定义为 androidx.car.api.minCarApiLevelIb0d41
  • 创建了一个允许观察汽车连接状态的 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(需要 Car API 级别 2)(Ic5cee

Bug 修复

  • 更新了图像尺寸要求以适应更大的汽车屏幕(I116dc
  • 禁止在模板主体中添加超过 2 个操作(I32157
  • 确保汽车应用库中所有 PendingIntent 的创建都设置了标志。(If84fe, b/186394900
  • 更新了 javadoc,允许 Row 的文本更改作为刷新(If3f9c
  • androidx.activity:activity:1.2.0 现在是一个 API 依赖项(Id1cb9
  • SignInTemplateLongMessageTemplate 设为在其主体中要求仅停泊操作,并更新文档以指示它们仅在汽车停泊时显示(Iddaa9
  • 修复了在启动期间弹出 Screen 时发生的异常(Ifcf40, b/184664896
  • 允许 ForegroundCarColorSpan 中的自定义文本颜色(I69e59
  • 修复了在 ScreenON_DESTROY 之后观察到 Session 上的 ON_DESTROY 的问题(I52e01, b/183696617
  • 更新了关于何时允许将 TravelEstimate 的剩余时间设置为未知时间的 javadoc。(I99610, b/183632456
  • 更新了 Action 以支持标题中的 ForegroundColorSpan 和任何自定义背景颜色(I578e4
  • 如果回调在执行器执行之前被清除,则不执行 NavigationManagerCallback#onStopNavigationI7fc5e, b/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 构建导航、停车和充电应用。

Bug 修复

  • 修复了启动时弹出 Screen 出现异常的问题 (70aae1, b/184664896)
  • 修复了 Session 上的 ON_DESTROYScreenON_DESTROY 之后才被观察到的问题 (0ceecb, b/183696617)

版本 1.0.0-rc01

2021 年 3 月 24 日

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

Bug 修复

  • 修复了一个竞态条件错误,其中在回调被清除后调用了 NavigationManagerCallback#onStopNavigation。如果回调在回调执行器实际运行之前被清除,则会发生这种情况 (I7fc5e, b/181143772)
  • 修复了一个问题,该问题要求应用明确依赖 lifecycle-common-java8 (I8b8c8)
  • 修复了当应用已删除回调后收到 stopNavigation 调用时抛出的 NullPointerException (Ib8b89, b/181143772)
  • 改进了当应用的生命周期未处于 CREATED 状态时,不向应用分派调用 (I86965, b/179800224, b/177921120)
  • 修复了应用清单中指定的无效最低 API 会抛出异常,导致主机上出现 ANR 的问题。 (Iffedd, b/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 或更高版本。请遵循开发指南,了解如何使用该库构建车载应用。

新功能

Bug 修复

  • 修复了连续弹出屏幕时,恢复了错误的 Screen 的问题。 (b/177590791)