汽车应用
最近更新时间 | 稳定版 | 候选版 | Beta 版 | Alpha 版 |
---|---|---|---|---|
2024 年 11 月 13 日 | 1.4.0 | - | 1.7.0-beta03 | - |
声明依赖项
如需添加汽车应用库的依赖项,您必须将 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") }
如需详细了解依赖项,请参阅添加 build 依赖项。
反馈
您的反馈将帮助我们改进 Jetpack。如果您发现了新问题,或对此库有任何改进建议,请告诉我们。创建新问题前,请先查看此库中的现有问题。您可以点击星标按钮,为现有问题投票。
如需了解详情,请参阅问题跟踪器文档。
版本 1.7
版本 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
extra。(I201f9) - 废弃了
ConversationItem
上的空构建器构造函数,并将其替换为接受必需参数的构造函数。此外,还添加了检查以防范 null 消息。(Ic8221)
bug 修复
- 确保
PlaceList
映射使用字符串(仅限文本)标题标头。(Ic992f) - 此库现在使用 JSpecify nullness annotations,即类型使用。Kotlin 开发者应使用以下编译器参数来强制执行正确的用法:
-Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode
。(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
extra (I8796b) - 在
TabContents.Builder
类中将TabContents.Api8Builder
类替换为@ExperimentalCarApi
构造函数 (I26fbe) - 为
CarMediaApp
添加了 intent 操作和 extra (I50782) - 将消息传递 API 标记为非实验性 API (I0b070)
- 向
SectionedItemTemplate
添加了远程项加载功能(允许长列表加载且不会崩溃)(I0d122) - 在 API 8 中,将
SectionedItemTemplate
添加到TabTemplate
内受支持的模板列表中。(Idc5d6)
bug 修复
- 移除了手动说明对新平台 API 的访问权限,因为当将 R8 与 AGP 7.3 或更高版本(例如 R8 版本 3.3)搭配使用时,系统会通过 API 建模自动执行此操作;当使用 AGP 8.1 或更高版本(例如 D8 版本 8.1)时,系统会针对所有 build 自动执行此操作。建议不使用 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 中发布的功能相同,如下所示:
新功能
- 包含内容的地图:新模板,包含地图画布和内容模板,目前可以是列表 / 网格 / 窗格 / 消息。
RoutePreview
、PlaceListNavigation
和MapTemplate
现已废弃。模板将继续按原样运行。- 示例应用已更新为显示
MapWithContent
用法,而不是已废弃的模板
- 对话项:用于在汽车中显示对话(即时通讯、短信)和 Google 助理读出内容的新 API。
- 车辆尺寸:用于检索车辆尺寸的新 API(目前的数据来自 AAOS)。
API 变更
- 向
MediaPlaybackTemplate.Builder
添加了@ExperimentalCarApi
标记。(Ic1957) - 在实验性功能中添加了新的
SectionedItemTemplate
。(I5958a) - 引入了
CarAppApiLevel 8
(I3fa22) - 添加了
MediaPlaybackTemplate
,用于在汽车应用库中播放媒体内容期间显示内容。(I3c10d) - 添加了新的 API,供应用检测系统是否支持在驾车时播放后台音频 (I0f868)
bug 修复
- 修复了 CAL 客户端代码和 CAL 导航示例应用中的某些内存泄漏和崩溃问题。I55e04
- 将
BaseCarAppActivity
的onDestroy
方法中的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 变更
- 废弃了旧的
MapTemplate
、RoutePreviewNavigationTemplate
和PlaceListNavigationTemplate
,并鼓励使用新的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
的新模板,支持在地图中将列表 / 网格 / 窗格 / 消息用作内容。RoutePreview
、PlaceListNavigation
地图模板现已废弃。- 示例应用已更新,以展示使用
MapWithContent
的已废弃模板的功能。
- 对话项:用于在汽车中显示对话(即时通讯、短信)和 Google 助理读出内容的新 API。
- 车辆尺寸:用于检索车辆尺寸的新 API(目前的数据来自 AAOS)。
API 变更
- 将超小行图片类型标记为实验性 (I5184b)
- 添加了
CarInfo#fetchExteriorDimensions
API,可访问车辆外部尺寸信息,例如高度、宽度等 (Ia40c5) - 从
MapWithContentTemplate
中移除了ExperimentalAPI
标记 (I66db8) - 将
GridItem#setTitle
参数更新为可为 null。(I3d610) GetHeader
API 不需要 API 7,因为它向后兼容 (I8c812)- 在
ListTemplate
中添加了对Header
的支持,废弃了headerAction
、headerTitle
、actionStrip
(I7ae01) - 在
GridTemplate
中废弃了title
、headerAction
和actionStrip
,并添加了对Header
的支持 (I41a9c) - 移除了对实验性 API 的级别 7 要求:标记、
GridTemplate
项大小和图片形状 getter/setter、用于获取/设置标记的GridItem
方法。(Id71eb) - 弃用了
PaneTemplate
中的title
、headerAction
和actionStrip
,添加了新的Header
支持 (I23154) - 将 Media Center 遥测从
BroadcastReceiver
更改为“浏览自定义操作”。(I4185f) - 在
MessageTemplate
中添加了对Header
属性的支持。废弃了对ActionStrip
、headerAction
和title
的支持。(Ie2de8) - 修改了提醒常量可见性 (Icf8a8)
- 从父级模板中移除了
isLoading
属性 (I651e6) - 添加了 extras,以便告知媒体应用主要界面参数 (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 以来的重要变更
- 导航应用的仪表板地图渲染
- 新标签页模板,可改进应用布局 / 易用性
- 支持自适应任务限制
- 列表元素的次要操作
版本 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 修复
- 修复了标签页上的加载屏幕无法正确显示的 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 变更
- 向
CarMessage
添加了多媒体字段 (I5aaf6) - 在汽车应用库中向
ConversationItem
添加了自定义操作 (Ie5ed6) - 添加了 extra,以指明媒体内容是采用沉浸式音频格式播放的,并展示其内容格式徽标 (Icb5bb)
- 添加了新的 Action 类型
ActionsConstraints
API,以支持撰写按钮。(I31661) - 将
set/getTemplate
设为了set/get ContentTemplate
(Ica036) - 模板参数现在为
@NonNull
。更新了MapWithContentTemplate
API 文档 (I0f8ed) - 移除了 CAL 1.4 中启动时
ListTemplate
中的 Action 的@ExperimentalCarApi
标记 (I2cfcb) - 移除了
TabTemplate
的@ExperimentalCarApi
标记 (Ifcb82) - 从行次要操作和装饰中移除了
@ExperimentalCarApi
注解 (I8487e) - 向
TabTemplate
添加了活跃标签页内容 ID,并废弃了标签页上的活跃状态 (I96932) - 向
GridTemplate
添加了ItemImageShape
属性 (Ibf431) - 向
GridTemplate
添加了ItemSize
属性,该属性会根据相对的小、中、大分桶来控制网格项的大小。(Icdb3b) - 开放 API 访问权限,以便开发者获取当前屏幕堆栈的副本。(I48107)
- 向汽车应用库添加了天气应用类别 (I2be44)
- 向汽车应用库添加了用于调用应用的类别 (Icab33)
- 将
GridItem.Builder#setBadge()
替换为过载的setImage()
方法 (Id2000) - 向徽章添加了图标属性 (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) - 添加了 extra,以便将媒体内容的字幕或说明与其他媒体内容关联 (Ic84bf)
- 将行操作的 API 级别更新为级别 6。(Ie0a69)
- 向 A4C 添加了消息回调 (Ie3986)
bug 修复
- 为
CarMessage
添加了缺失的 Java 文档引用。(I5db1c) - 为
ConversationItem
和CarMessage
替换了equals()
和hashCode()
(I6fd10) - 改进了
ConversationItem.mMessages
验证(需要非 null、非空)(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-beta01
、androidx.car.app:app-projected:1.3.0-beta01
、androidx.car.app:app-automotive:1.3.0-beta01
和 androidx.car.app:app-testing:1.3.0-beta01
。版本 1.3.0-beta01 中包含这些提交内容。
- 现在,使用此库构建的汽车应用可以使用 API 级别 5 进入 Play 商店(请参阅我们的开发指南)。带有 API 级别 5 及更低级别注解的功能与 Android Auto 8.1 及更高版本和 Google Automotive App Host 1.4 及更高版本兼容。
新功能
除了在汽车应用库 1.3.0-alpha01 中添加的功能之外,beta01 中还添加了以下功能(此处的所有功能仅涉及主机端更改,没有任何 API 更改):
- 即使用户位于基于地图的选择屏幕中的
PlaceListNavigationTemplate
、RoutePreviewNavigationTemplate
和MapTemplate
内,浮动导航栏也会继续显示。为此,您可以通过NavigationManager.updateTrip()
更新导航信息。 - 使用
FLAG_DEFAULT
启用操作按钮,以设置超时动画。超时后,系统将会默认点击此按钮。([API 5 - All Templates]
) Row
的辅助文本在汽车停放期间不会被截断,但在驾车时会被截断成 2 行。([API 5 - All Templates]
)- 支持
Action
、Toggle
、Row
([API 5 - All Templates]
) 的停用状态
API 变更
- 放宽了
MapTemplate
列表中的约束条件以支持可选列表 (I961ed) - 取消了对标头操作的约束条件,允许使用自定义图标。(Iad28f)
- 为
ActionsConstraints
添加了约束条件setOnClickListenerAllowed()
,它允许Action
将OnClickDelegate()
设置为标准图标类型以外的操作。(TYPE_APP_ICON
、TYPE_BACK
和TYPE_PAN
)(I3c745)
bug 修复
- 添加了 Android Automotive 模板主机 1.4 及更高版本与曲面屏 (
[Host change]
) 的兼容性
版本 1.3.0-alpha01
2022 年 7 月 27 日
发布了 androidx.car.app:app:1.3.0-alpha01
、androidx.car.app:app-projected:1.3.0-alpha01
、androidx.car.app:app-automotive:1.3.0-alpha01
和 androidx.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:新增了
Header
和MapController
组件,以方便跨模板重复使用 (If5826) - 添加了
androidx.car.app.category.POI
作为启用地图注点应用的类别(并废弃了androidx.car.app.category.PARKING
和androidx.car.app.category.CHARGING
)(I59da1)
API 变更
- API 级别 5:在
SurfaceCallback
接口中新增了onClick
方法,以允许进行点按地图的互动操作 (Ia9777) - API 级别 5:新增了标记
Action.FLAG_IS_PERSISTENT
和Action.FLAG_DEFAULT
,用于描述Action
(I96318、I5ad70) - API 级别 5:为
Action
、Row
和Toggle
组件新增了启用/停用状态(主机支持将在库版本 1.3.0-beta01 前后推出)(Id8a09) - API 级别 5:通过
PlaceListNavigationTemplate.Builder
和RoutePreviewNavigationTemplate.Builder
上的setHeader
支持新的Header
组件,废弃现有的setTitle
和setHeaderAction
方法 (I30e6a) - API 级别 5:在
PlaceListMapTemplate.Builder
和PlaceListNavigationTemplate.Builder
上新增了setOnContentRefreshListner
方法,用于与新的OnContentRefreshListner
接口实现搭配使用。 - API 级别 5:在
TravelEstimate.Builder
上新增了setTripText
和setTripIcon
,用于自定义行程估算数据卡片(Idcc6d、Ic620d) - 添加了对
PaneTemplate
标题中CarIconSpan
的支持 (Ia1ee0) - 添加了对
Row
标题和文本中CarIconSpan
的支持 (Ic1e3c) - 地图
ActionStrip
现在最多可以有四项操作 (If3522) - 将汽车应用 API 级别更新为 5 (I26b8e)
- 现在,标头/标题对于
PlaceListMapTemplate
、PlaceListNavigationTemplate
、RoutePreviewNavigationTemplate
、GridTemplate
、ListTemplate
、LongMessageTemplate
、MessageTemplate
、PaneTemplate
和SignInTemplate
是可选的(I2078d、Icadde)
bug 修复
- 将
PaneTemplate
图片大小调整规则更新为方形边界框 (Idd72e) - 修复了在
State.DESTROYED
之后修改屏幕堆栈时发生的异常。(I3c8eb) - 添加了用于检索应用图标的 null 检查 (I3f710)
- 更新了 Car Hardware API,以便默认使用
STATUS_UNKNOWN
而不是STATUS_UNAVAILABLE
(Ic9444) - 在创建 Surface 之前检查显示屏是否存在 (Ice027a)
- 修复了涉及
STATUS_UNIMPLEMENTED
的CarValue.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 没有变化。新增了专为未来的 Android Auto 和 Android Automotive 版本设计的实验性功能(API 级别 5)。
bug 修复
- 修复了在
State.DESTROYED
之后修改屏幕堆栈时发生的异常。(I3c8eb) - 更新了
CarSensors
API 以表明未针对 AAOS 实现这些 API (Idd57b) - 更新了
PlaceListMapTempalte.Builder#setCurrentLocationEnabled
以表明 ACCESS_COARSE_LOCATION 足以满足未来的需求 (I510c2) - 将 Maneuver 类型 roundabout-with-angle 的出口编号设为可选属性 (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
平台兼容。如需了解注意事项,请参阅下文的“Known Issues
”部分。
API 变更
- 向地图注点模板添加了实验性
setOnContentRefreshListener
API (I6bf22)
bug 修复
- 修复了汽车主机取消绑定时
CarAppService
中发生内存泄漏的问题。(I5c9ca、b/203594731) - 更新了
CarAppActivity
javadoc,在其中添加了关于 singleTask 启动模式的要求 (Id2f95) - 减少了恢复时的视觉小故障。(Iff7e0)
已知问题
PlaceListNavigationTemplate
和RoutePreviewNavigateTemplate
中的地图ActionStrip
将在Android Auto
和Android Automotive OS
的下个版本中推出。
版本 1.2.0-alpha02
2021 年 12 月 15 日
发布了 androidx.car.app:app-*:1.2.0-alpha02
。版本 1.2.0-alpha02 中包含这些提交内容。
带有 API 级别 4 注解的功能已从实验性功能升级为稳定功能,包括 PlaceListNavigationTemplate
和 RoutePreviewNavigateTemplate
中的地图 ActionStrip
、Pane
中的 CarIcon
图像、QRCodeSignInMethod
,以及在 Action
中设置渲染提示(例如标记)的功能。
新功能
- 在 Android Auto 7.1 及更高版本中,
Pane
的项目数量上限已从 2 提高至 4。
API 变更
- 向
CarUnit
中添加了实验性toString()
方法 (I36a3b)
bug 修复
版本 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) - 添加了 Car App Library API 级别 4 (I2a2e7)
- API 级别 4:现在支持在
Pane
中设置CarIcon
(Ifcc12) - API 级别 4:添加了二维码登录方法 (Ib623e)
- API 级别 4:向
Action
添加了 set/getFlags (Ic03ab) - API 级别 4:在
PlaceListNavigationTemplate
和RoutePreviewNavigationTemplate
中添加了对平移和缩放的支持 (I9d8a3)
bug 修复
版本 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:
SignInTemplate
和LongMessageTemplate
可用于车辆停好后的登录流程 - 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 没有变化。新增了专为未来的 Android Auto 版本设计的实验性功能(API 级别 4)。如需详细了解实验性 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) - 移除了显式获取
TestCarContext
的ScreenController
构造函数 (Iefebc)
bug 修复
- 添加了创建
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 变更
- 将
SessionController
和ScreenController
生命周期方法合并为一个moveToState
方法 (I1ed00) - 添加了
CarContext#getHostInfo()
(I8977e) - 移除了已废弃的字段。(I67168)
- 更新了
SessionController
和ScreenController
,以直接提供构造函数 (Iabf22) - 移除了
PinSignInMethod.Builder
和ProviderSignInMethod.Builder
(I9f0cb) - 添加了“setCarAppResult()”,以支持在 AAOS 中使用模板化应用“for result”(I37741)
- 使用
@MainThread
对CarHardware
接口进行了注解。(Ib2f85) - 将
OnCarDataListener
重命名为OnCarDataAvailableListener
(I518ca) - 更新了
CarInfo
、Speed
、Mileage
方法名称和 javadoc。(I86672) Toll
已重命名为TollCard
。(I3e7c8)- 移除了已废弃的
PinSignInMethod.getPin
,取而代之的是PinSignInMethod.getPinCode
(I996ce) - 移除了
OnInputCompletedListener
,取而代之的是InputCallback
。(Ib5be1) - 将
PinSignInMethod
更改为接受CharSequence
(而非String
)(I275d5)
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-alpha01
、androidx.car.app:app-automotive:1.1.0-alpha01
和 androidx.car.app:app-testing:1.1.0-alpha01
。版本 1.1.0-alpha01 中包含这些提交内容。
新功能
- API 级别 2:新增了
SignInTemplate
和LongMessageTemplate
,可用于车辆停好后的登录流程。 - API 级别 2:
NavigationTemplate
内新增了地图互动支持 - API 级别 2:新增对多长度文本的支持,允许应用提供多个版本的字符串,以根据车载显示屏的尺寸显示相应版本。
- 请参阅开发指南和库 Javadoc,详细了解如何在与 API 级别 2 兼容的汽车主机中使用这些功能以及相关的设计准则。
API 变更
- 将所有
*Callback
接口方法设为默认方法,并将OnRequestPermissionsCallback
重命名为OnRequestPermissionsListener
(Ib3ec9) - 更新了
androidx.car.app.hardware
类,以移除不必要的构建器和参数类。(I67beb) - 添加了
androidx.car.app.hardware
类,用于访问汽车特有数据,例如燃油、电池和速度。(Iff3c9) - 添加了对
MessageTemplate
的ActionStrip
支持 (Ida657) - 已将
setLoading
添加到MessageTemplate
中。(I2a4b5) ConnectionToCar
已重命名为CarConnection
(Ife9bd)- 更改了
NavigationTemplate
以返回显式PanModeDelegate
(I13877) - 更新了
CarContext.requestPermissions
的参数顺序 (Ib890a) - 更新了元数据键,以将最低 Car 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
(要求 Car API 级别为 2)(Ic5cee)
bug 修复
- 更新了图片大小要求,以顾及到较大的车载显示屏 (I116dc)
- 禁止在模板主体中添加 2 个以上操作 (I32157)
- 已确保汽车应用库中创建的所有
PendingIntent
都设置了标志。(If84fe、b/186394900) - 更新了 javadoc,使
Row
的文本可以在刷新时更改 (If3f9c) androidx.activity:activity:1.2.0
现在是 API 依赖项 (Id1cb9)- 将
SignInTemplate
和LongMessageTemplate
设为要求在其主体中包含仅限停车状态下的操作,并更新了文档以指示只能在停车后显示这些操作 (Iddaa9) - 修复了启动期间会弹出
Screen
的异常(Ifcf40、b/184664896) - 允许在
ForegroundCarColorSpan
中使用自定义文本颜色 (I69e59) - 修复了以下问题:在对
Screen
执行ON_DESTROY
之后观察到对Session
执行ON_DESTROY
(I52e01、b/183696617) - 更新了 javadoc,说明何时允许将
TravelEstimate
的剩余时间设置为未知时间。(I99610、b/183632456) - 更新了
Action
,以支持标题和任何自定义背景颜色中的ForegroundColorSpan
(I578e4) - 如果在执行程序执行之前清除了回调,就不会执行
NavigationManagerCallback#onStopNavigation
(I7fc5e、b/181143772) - 修复了要求应用显式依赖于 lifecycle-common-java8 的问题 (I8b8c8)
已知问题
- 在
SignInTemplate
中,当用户想要确认输入时,屏幕键盘会显示“搜索”图标而非“输入”图标。作为临时解决方法,用户可以使用手机键盘,该键盘会在输入字段获得焦点时激活。 - 在 Android Auto 版本 6.5 中,可能会针对某些轻触手势错误地调用
SurfaceCallback
中的平移和缩放回调。
Car App Testing 版本 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) - 修复了以下问题:在对
Screen
执行ON_DESTROY
之后观察到对Session
执行ON_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
的竞态条件 bug。如果在回调执行程序实际运行之前清除了回调,就会出现此问题(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 或更高版本兼容。请参阅开发指南,详细了解如何使用该库构建汽车应用。
新功能
- 引入了
GridTemplate
,应用可以用它来在网格布局中显示界面元素列表。 - 引入了
CarAppService.createHostValidator
方法,用于验证主机连接是否来自可信来源(例如 Android Auto)。 - 添加了
CarAppExtender.Builder.setColor
API。(b/174231592)
bug 修复
- 修复了按顺序弹出屏幕时恢复的
Screen
不正确的问题。(b/177590791)