每次 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 或更高版本上运行时发生崩溃,而这种崩溃可能是由触发权限对话框时安全后台 activity 启动变更引起的。
由于以 Android 15 或 更高版本为目标平台的应用存在窗口插页变更,因此您应测试分发到 Android Automotive OS 的应用,以验证 应用实现的 Activity 是否按预期呈现。如需详细了解 Android Automotive OS 特有的注意事项,请参阅使用窗口 插页和显示屏凹口。
Android 14
- 由于以 Android 14 或更高版本为目标平台的应用需要 前台服务类型,因此请检查您是否为应用拥有的任何前台服务(例如 导航和媒体播放服务)指定了前台 服务类型。
- 由于以 Android 14 或更高版本为目标平台的应用需要
运行时注册的广播接收器必须指定导出行为,因此使用
CarConnectionAPI 的应用应更新到androidx.car.app:app:1.3.0-beta01或更高版本。请参阅 Connection API。 - 由于在搭载 Android 14 及更高版本的设备上运行 Android Auto 时发生了变更,因此从 Android Auto 应用在手机屏幕上启动 activity 时,需要在调用
startActivity()时提供ActivityOptions,并将显示屏 ID 设置为手机显示屏的 ID (DEFAULT_DISPLAY)。- 使用
CarContext.requestPermissions()方法的应用应 更新到androidx.car.app:app:1.7.0-alpha01或更高版本,其中包含此 修复。
- 使用
Android 13
- 对于使用 Android for Cars 应用库构建的应用,
Configuration提供的CarContext的语言区域设置反映的是宿主应用的 每个应用 语言偏好设置,而不是您的应用的语言区域设置。
Android 12
- 在搭载 Android 12 或更高版本的设备上,Android Auto 在运行时不会更改设备的 界面模式。请参阅如何检测 Android Auto 是否正在运行?。
- 由于以
Android 12 或更高版本为目标平台的应用需要更安全的组件导出,因此您必须在
MediaBrowserService和CarAppService服务的<service>元素上显式声明android:exported属性。 - 由于以 Android 12 或更高版本为目标平台的应用需要待处理 intent 可变性,因此您必须显式指定应用创建的任何待处理 intent 的可变性,例如消息应用用于处理回复消息或将消息标记为已读的待处理 intent。