本页介绍了如何安装 Car App 库,以及如何为应用配置清单文件。
安装汽车应用库
如需将库添加到应用,请参阅 Jetpack 库发布页面。
配置应用的清单文件
您必须先配置应用的清单文件,然后才能创建汽车应用。
声明 CarAppService
主机通过 CarAppService 实现连接到您的应用。您应在清单中声明此服务,以允许主机发现并连接到您的应用。
您还需要在应用的 intent 过滤器的 <category> 元素中声明应用的类别。请查看支持的应用类别的列表,了解此元素允许的值。
以下代码段展示了如何在清单中为地图注点应用声明汽车应用服务:
<application>
...
<service
...
android:name=".MyCarAppService"
android:exported="true">
<intent-filter>
<action android:name="androidx.car.app.CarAppService"/>
<category android:name="androidx.car.app.category.POI"/>
</intent-filter>
</service>
...
<application>
支持的应用类别
声明 CarAppService 时(如声明 CarAppService 中所述),您还必须通过在 intent 过滤器中添加以下一个或多个值来声明应用的类别。
androidx.car.app.category.NAVIGATION:提供精细导航说明。请参阅构建车载导航应用。androidx.car.app.category.POI:此类应用提供与查找停车位、充电站和加油站等地图注点相关的功能。请参阅构建车载地图注点应用。androidx.car.app.category.IOT:可让用户在车内对已连接的设备执行相关操作。请参阅构建车载物联网应用。androidx.car.app.category.WEATHER:让用户查看与当前位置或路线相关的天气信息。 请参阅构建车载天气应用。androidx.car.app.category.MEDIA:可让用户在车内浏览和播放音乐、电台、有声读物及其他音频内容。请参阅构建基于模板的车载媒体应用。androidx.car.app.category.MESSAGING:让用户通过简短的文本消息进行交流。请参阅为 Android Auto 构建基于模板的消息传递体验。androidx.car.app.category.CALLING:允许用户通过语音通话进行通信。请参阅为 Android Auto 构建通话体验。
如需详细了解各个类别以及符合相应类别所需的条件,请参阅 Android 汽车应用质量。
指定应用名称和图标
为了在系统界面中表示应用,carPermissionActivityLayout 必须为主机指定应用名称和图标。使用 CarAppService 的 label 和 icon 属性来指定主机用于表示您的应用的应用名称和图标:
...
<service
android:name=".MyCarAppService"
android:exported="true"
android:label="@string/my_app_name"
android:icon="@drawable/my_app_icon">
...
</service>
...
如果您未在 <service> 元素中声明标签或图标,主机将回退到使用 <application> 元素指定的值。
设置自定义主题
如需为汽车应用设置自定义主题,请执行以下操作:
在清单文件中添加
<meta-data>元素:<meta-data android:name="androidx.car.app.theme" android:resource="@style/MyCarAppTheme />声明样式资源,以便为您的自定义汽车应用主题设置属性:
<resources> <style name="MyCarAppTheme"> <item name="carColorPrimary">@color/my_primary_car_color</item> <item name="carColorPrimaryDark">@color/my_primary_dark_car_color</item> <item name="carColorSecondary">@color/my_secondary_car_color</item> <item name="carColorSecondaryDark">@color/my_secondary_dark_car_color</item> <item name="carPermissionActivityLayout">@layout/my_custom_background</item> </style> </resources>