このページでは、自動車向けアプリ ライブラリをインストールし、アプリのマニフェスト ファイルを構成する方法について説明します。
自動車向けアプリ ライブラリをインストールする
ライブラリをアプリに追加するには、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>
createHostValidator()メソッドをオーバーライドすると、アプリに接続できるホストアプリをより細かく制御できるためです。サポートされているアプリのカテゴリ
CarAppService を
CarAppService を宣言するで説明されているように宣言する場合は、インテント フィルタにこれらの値を
1 つ以上追加して、アプリのカテゴリも宣言する必要があります。
androidx.car.app.category.NAVIGATION: ターンバイターン方式のナビゲーションの経路を提供します。自動車向けナビゲーション アプリを作成するをご覧ください。androidx.car.app.category.POI: 駐車場、充電スタンド、ガソリンスタンドなど、スポットの検索に関連する機能を提供します。自動車向けスポットアプリを作成するをご覧ください。androidx.car.app.category.IOT: ユーザーが接続済みデバイスに対して車内から操作を行うことができます。自動車向け 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 アプリの品質をご覧ください。
アプリの名前とアイコンを指定する
システム UI でアプリを表すには、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>` 要素で指定された値にフォールバックします。<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>
自動車向けアプリの API レベル
自動車向けアプリ ライブラリでは独自に API レベルが定義されるため、ライブラリのどの機能が車両のテンプレート
ホストでサポートされているかを確認できます。
ホストでサポートされている自動車向けアプリの API レベルを取得するには、
getCarAppApiLevel()
メソッドを使用します。
アプリでサポートされている自動車向けアプリの最小 API レベルを AndroidManifest.xml ファイルで宣言します。
<manifest ...>
<application ...>
<meta-data
android:name="androidx.car.app.minCarApiLevel"
android:value="1"/>
</application>
</manifest>
下位互換性を維持し、機能を使用するために必要な最小 API レベルを宣言する方法については、
アノテーションのドキュメントをご覧ください。RequiresCarApi自動車向けアプリ ライブラリの特定の機能を使用するために必要な API
レベルの定義については、
リファレンス ドキュメント
CarAppApiLevelsをご確認ください。