建構搜尋點應用程式

本指南將詳細說明 Car App Library 的不同功能,可用來實作搜尋點 (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>

存取地圖範本

搜尋點應用程式可存取 PlaceListMapTemplateMapWithContentTemplate

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 傳回的下一個範本類型相同,系統就會計為重新整理,不會計入範本配額。

使用應用程式動作整合 Google 助理

使用 Google 助理為 POI 應用程式啟用語音,讓使用者可在搜尋所需搜尋點時,透過「Ok Google,用範例應用程式尋找附近的充電站」這類指令提問。如需詳細操作說明,請參閱「車輛應用程式動作」。