このガイドでは、スポット(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>
地図のテンプレートにアクセスする
POI アプリは PlaceListMapTemplate
にアクセスできます
および MapWithContentTemplate
。
PlaceListMapTemplate
は、特定のリソースのリストを表示するように設計されています。
ホストがレンダリングした地図の横にスポットが表示されます。
MapWithContentTemplate
は、リストやその他のタイプのデータを表示するために使用できます。
アプリによってレンダリングされた地図の横にコンテンツが表示されます。詳しくは、
この機能の使用方法について詳しくは、地図を描画してください
使用します。
これらのテンプレートにアクセスするには、アプリで
AndroidManifest.xml
ファイル内の androidx.car.app.MAP_TEMPLATES
権限:
<manifest ...>
...
<uses-permission android:name="androidx.car.app.MAP_TEMPLATES"/>
...
</manifest>
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 をご覧ください。