建構搜尋點應用程式

本指南說明車輛應用程式程式庫的不同功能,方便您實作搜尋點 (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,這個項目的用意是在主機算繪地圖時一併顯示搜尋點清單。

如要存取這個範本,應用程式需要在 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 傳回的下一個範本類型相同,系統就會計為重新整理,而不會計入範本配額。

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

使用 Google 助理啟用 POI 應用程式的語音功能,即可讓使用者詢問「Ok Google,在範例應用程式上尋找附近的充電站」等事項,藉此搜尋相關搜尋點。如需詳細操作說明,請參閱「車輛應用程式動作」。