为了简化将移动应用引入 Android Automotive OS 设备的过程,某些汽车配备了兼容模式,可解决将现有移动应用引入汽车时遇到的常见问题。
虽然适配汽车的移动应用计划使用此兼容模式,但不属于该计划的应用也可以在该模式下运行。
了解兼容模式
Android Automotive OS 兼容模式是一项部分车辆提供的软件功能,旨在改进在 Android Automotive OS 上运行的专为移动设备构建的应用的用户体验。
返回导航
与其他设备规格不同,Android Automotive OS 设备无需具备硬件或软件返回功能。兼容模式通过要求系统提供返回功能(无论是硬件按钮、软件按钮、手势还是其他方式)来解决此问题。这样一来,应用无需仅通过自己的界面元素来确保可导航性。
安全区域呈现
在汽车中,系统栏和刘海屏等软件和硬件元素可能会破坏主要针对移动设备开发的应用所做的假设。兼容模式通过确保应用在安全区域中呈现来解决此问题。
密度缩放
由于汽车中的互动距离比其他大屏设备更长,因此在汽车上运行时,触摸目标和字号通常小于建议值。兼容模式通过允许 OEM 指定渲染应用时使用的 DPI 缩放比例来解决此问题。
activity 生命周期
如为 Android Automotive OS 构建停车状态下使用的应用中所述,当汽车进入驾驶模式后,操作系统会自动阻止您应用的 activity,以减少让驾驶员分心的因素。在启用兼容模式的设备上,OEM 的屏蔽界面不得是透明的,因此当您的应用被屏蔽时,该应用将不再可见,并转换为已停止生命周期状态。
配置兼容模式
默认情况下,当设备支持时,应用的 activity 会在兼容模式下运行。在以下情况下,activity 不会在兼容模式下运行:
- 如果清单中存在
android.hardware.type.automotive
地图项的<uses-feature>
元素:
<application ...>
...
<uses-feature android:name="android.hardware.type.automotive" ...>
...
</application>
- 如果有任何
<activity>
清单元素包含以下<meta-data>
元素:
<meta-data android:name="distractionOptimized" android:value="true">
如果您的应用符合上述任一条件,但您希望 activity 在显示屏兼容模式下运行,则可以在应用的清单中添加以下 <meta-data>
元素:
<application ...>
...
<meta-data android:name="android.software.car.display_compatibility" android:value="true"/>
...
</application>
在兼容模式下测试应用
如需在兼容模式下测试应用,您可以使用支持兼容模式的通用系统映像。
确定设备支持情况
支持 Android Automotive OS 兼容模式的设备必须声明 android.software.car.display_compatibility
系统功能。如需了解哪些设备支持此功能,您可以使用 Play 管理中心的设备目录。