本指南將詳細說明 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>
存取地圖範本
搜尋點應用程式可存取 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
傳回的下一個範本類型相同,系統就會計為重新整理,不會計入範本配額。
使用應用程式動作整合 Google 助理
使用 Google 助理為 POI 應用程式啟用語音,讓使用者可在搜尋所需搜尋點時,透過「Ok Google,用範例應用程式尋找附近的充電站」這類指令提問。如需詳細操作說明,請參閱「車輛應用程式動作」。