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