プロジェクトをセットアップする

このページでは、Car App ライブラリをインストールする方法と、アプリのマニフェスト ファイルを構成する方法について説明します。

Car App ライブラリをインストールする

ライブラリをアプリに追加するには、Jetpack ライブラリのリリースページをご覧ください。

アプリのマニフェスト ファイルを構成する

自動車アプリを作成する前に、アプリのマニフェスト ファイルを構成する必要があります。

CarAppService を宣言する

ホストは CarAppService の実装を通じてアプリに接続します。ホストがアプリを検出して接続できるようにするには、マニフェストでこのサービスを宣言する必要があります。

また、アプリのインテント フィルタの <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 を宣言するときは、インテント フィルタにこれらの値を 1 つ以上追加して、アプリのカテゴリも宣言する必要があります。

各カテゴリの詳細な説明と、カテゴリの要件を満たすために必要な条件については、自動車向け Android アプリの品質をご覧ください。

アプリの名前とアイコンを指定する

システム UI でアプリを表すには、carPermissionActivityLayout がホストのアプリ名とアイコンを指定する必要があります。ホストがアプリを表すために使用するアプリ名とアイコンを指定するには、CarAppServicelabel 属性と icon 属性を使用します。

...
<service
   android:name=".MyCarAppService"
   android:exported="true"
   android:label="@string/my_app_name"
   android:icon="@drawable/my_app_icon">
   ...
</service>
...

<service> 要素でラベルまたはアイコンを宣言しない場合、ホストは <application> 要素で指定された値にフォールバックします。

カスタムテーマを設定する

車載アプリのカスタムテーマを設定するには:

  1. マニフェスト ファイルに <meta-data> 要素を追加します。

    <meta-data
        android:name="androidx.car.app.theme"
        android:resource="@style/MyCarAppTheme />
    
  2. スタイル リソースを宣言して、カスタムの車載アプリのテーマの属性を設定します。

    <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>