随着每个 Android 版本的发布,API 和行为变更都会影响应用在 Android Auto 和 Android Automotive OS 上的运行方式。本页详细介绍了其中的许多影响,并提供了有关如何更新应用以支持新版 Android 的信息。
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 或更高版本为目标平台的应用需要满足更安全的组件导出要求,因此您必须为
MediaBrowserService
和CarAppService
服务在<service>
元素上明确声明android:exported
属性。 - 由于以 Android 12 或更高版本为目标平台的应用必须遵循待处理 intent 的可变性要求,因此您必须明确指定应用创建的任何待处理 intent 的可变性。例如,这包括即时通讯应用用于处理回复消息或将消息标记为已读的待处理 intent。