每次 Android 版本发布时,API 和行为变更都会影响应用在 Android Auto 和 Android Automotive OS 上的运行方式。本页详细介绍了这些影响,并提供了有关如何更新应用以支持新版 Android 的信息。
Android 16
- Android Auto 利用虚拟设备所有者替换项在运行停车应用时忽略屏幕方向、宽高比和尺寸可调整性限制
- 如果您的应用使用 Android 16 更新来提供更安全的 intent,您可能需要将
CarAppService的<service>元素的android:intentMatchingFlags属性指定为allowNullAction,以允许 Android Auto 和 Android Automotive OS 连接到您的服务。
Android 15
使用 Android for Cars 应用库的 Android Automotive OS 应用必须更新到 1.7.0-rc01 版或更高版本。这可防止在 Android 15 或更高版本上运行时因触发权限对话框而导致 secured background activity launch changes 引起的崩溃。
由于面向 Android 15 或更高版本的应用的窗口边衬区发生了变化,您应测试分发到 Android Automotive OS 的应用,以验证应用实现的 activity 是否按预期呈现。如需详细了解 Android Automotive OS 特有的注意事项,请参阅使用窗口边衬区和刘海屏。
Android 14
- 由于以 Android 14 或更高版本为目标平台的应用必须提供前台服务类型,因此请检查您是否为应用中的所有前台服务(例如导航和媒体播放服务)指定了前台服务类型。
- 由于以 Android 14 或更高版本为目标平台的应用必须指定运行时注册的广播接收器的导出行为,因此使用
CarConnectionAPI 的应用应更新到androidx.car.app:app:1.3.0-beta01或更高版本。请参阅连接 API。 - 由于 Android Auto 在搭载 Android 14 及更高版本的设备上运行时发生了变化,因此从 Android Auto 应用在手机屏幕上启动 activity 时,需要提供一个显示 ID 设置为手机显示屏 ID (
DEFAULT_DISPLAY) 的ActivityOptions,才能调用startActivity()。- 使用
CarContext.requestPermissions()方法的应用应更新到androidx.car.app:app:1.7.0-alpha01或更高版本,其中包含此修复。
- 使用
Android 13
- 对于使用 Android for Cars 应用库构建的应用,由
CarContext提供的Configuration的语言区域设置反映的是宿主应用的应用级语言偏好设置,而不是您应用的语言区域设置。
Android 12
- 在搭载 Android 12 或更高版本的设备上,Android Auto 在运行时不会更改设备的 UI 模式。请参阅如何检测 Android Auto 是否正在运行?。
- 由于以 Android 12 或更高版本为目标平台的应用需要更安全的组件导出,因此您必须在
<service>元素上为MediaBrowserService和CarAppService服务明确声明android:exported属性。 - 由于以 Android 12 或更高版本为目标平台的应用对待处理 intent 的可变性有要求,您必须明确指定应用创建的任何待处理 intent 的可变性。例如,这包括即时通讯应用用于处理回复消息或将消息标记为已读的待处理 intent。