スポットアプリを作成する

このガイドでは、スポット(POI)アプリの機能を実装する際に使用できる、自動車向けアプリ ライブラリのさまざまな機能について詳しく説明します。

マニフェストでカテゴリのサポートを宣言する

スポットアプリでは、CarAppService のインテント フィルタで、自動車アプリのカテゴリとして androidx.car.app.category.POI を宣言する必要があります。

次の例は、アプリのカテゴリを宣言する方法を示しています。

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

地図のテンプレートにアクセスする

アプリでは PlaceListMapTemplate にアクセスできます。これは、ホストがレンダリングした地図とともに POI のリストを表示するように設計されています。

このテンプレートにアクセスするには、アプリの AndroidManifest.xml ファイルで、次のように androidx.car.app.MAP_TEMPLATES 権限を宣言する必要があります。

<uses-permission android:name="androidx.car.app.MAP_TEMPLATES"/>

PlaceListMapTemplate コンテンツを更新する

ドライバーが PlaceListMapTemplate で作成された場所のリストを閲覧しながら、ボタンをタップしてコンテンツを更新できるようにします。OnContentRefreshListener インターフェースの onContentRefreshRequested メソッドを実装し、PlaceListMapTemplate.Builder.setOnContentRefreshListener を使用してテンプレートのリスナーを設定することで、リストの更新が有効になります。

次のスニペットは、テンプレートにリスナーを設定する方法を示しています。

Kotlin

PlaceListMapTemplate.Builder()
    ...
    .setOnContentRefreshListener {
        // Execute any desired logic
        ...
        // Then call invalidate() so onGetTemplate() is called again
        invalidate()
    }
    .build()

Java

new PlaceListMapTemplate.Builder()
        ...
        .setOnContentRefreshListener(() -> {
            // Execute any desired logic
            ...
            // Then call invalidate() so onGetTemplate() is called again
            invalidate();
        })
        .build();

更新ボタンは、リスナーに値がある場合にのみ、PlaceListMapTemplate のヘッダーに表示されます。

ユーザーが更新ボタンをクリックすると、OnContentRefreshListener 実装の onContentRefreshRequested メソッドが呼び出されます。onContentRefreshRequested 内で、Screen.invalidate メソッドを呼び出します。次に、ホストはアプリの Screen.onGetTemplate メソッドにコールバックして、更新されたコンテンツを含むテンプレートを取得します。テンプレートの更新について詳しくは、テンプレートのコンテンツを更新するをご覧ください。onGetTemplate から返される次のテンプレートが同じタイプであれば、更新としてカウントされ、テンプレート割り当てにはカウントされません。

App Actions を使用して Google アシスタントと統合する

アシスタントを使用して POI アプリを音声で有効にし、「OK Google, ExampleApp で近くの充電スタンドを探して」などと話しかけて、スポットを簡単に検索できるようにします。詳細な手順については、自動車向け App Actions をご覧ください。