Ten przewodnik zawiera szczegółowe informacje o różnych funkcjach biblioteki aplikacji samochodowych, których możesz używać do implementowania funkcji aplikacji z ważnymi miejscami (POI).
Deklarowanie obsługi kategorii w pliku manifestu
Aplikacja musi zadeklarować androidx.car.app.category.POI
kategorię aplikacji na samochody w filtrze intencji w CarAppService.
Ten przykład pokazuje, jak zadeklarować kategorię aplikacji:
<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>
Dostęp do szablonów map
Aplikacje z informacjami o interesujących miejscach mogą mieć dostęp do PlaceListMapTemplate i MapWithContentTemplate.
PlaceListMapTemplate jest przeznaczony do wyświetlania listy punktów POI obok mapy renderowanej przez hosta.
Element MapWithContentTemplate może służyć do wyświetlania list i innych typów treści obok mapy renderowanej przez aplikację. Więcej informacji o korzystaniu z tego szablonu znajdziesz w artykule Rysowanie map.
Aby uzyskać dostęp do tych szablonów, aplikacja musi zadeklarować uprawnienie androidx.car.app.MAP_TEMPLATES w pliku AndroidManifest.xml:
<manifest ...>
...
<uses-permission android:name="androidx.car.app.MAP_TEMPLATES"/>
...
</manifest>
Odświeżanie zawartości PlaceListMapTemplate
Możesz umożliwić kierowcom odświeżanie treści za pomocą jednego kliknięcia podczas przeglądania list miejsc utworzonych za pomocą PlaceListMapTemplate.
Zaimplementuj metodę onContentRefreshRequested interfejsu OnContentRefreshListener i użyj PlaceListMapTemplate.Builder.setOnContentRefreshListener, aby ustawić odbiornik w szablonie, który umożliwi odświeżanie listy.
Poniższy fragment kodu pokazuje, jak ustawić odbiornik w szablonie:
return PlaceListMapTemplate.Builder() // ... .setOnContentRefreshListener { // Execute any desired logic // ... // Then call invalidate() so onGetTemplate() is called again invalidate() } .build()
Przycisk odświeżania jest widoczny tylko w nagłówku elementu PlaceListMapTemplate, jeśli odbiornik ma wartość.
Gdy użytkownik kliknie przycisk odświeżania, wywoływana jest metoda onContentRefreshRequested w Twojej implementacji OnContentRefreshListener. W metodzie onContentRefreshRequested wywołaj metodę Screen.invalidate. Następnie host wywołuje metodę Screen.onGetTemplate
w aplikacji, aby pobrać szablon ze zaktualizowaną treścią. Więcej informacji o odświeżaniu szablonów znajdziesz w artykule Odświeżanie zawartości szablonu. Dopóki następny szablon zwrócony przez onGetTemplate jest tego samego typu, jest on traktowany jako odświeżenie i nie wlicza się do limitu szablonów.
Integracja z Asystentem Google za pomocą akcji w aplikacji
Włącz obsługę głosową w aplikacji z punktami POI za pomocą Asystenta, aby umożliwić użytkownikom wyszukiwanie punktów POI przez zadawanie pytań takich jak „OK Google, znajdź w pobliżu stacje ładowania w aplikacji ExampleApp”. Szczegółowe instrukcje znajdziesz w artykule Akcje w aplikacji na samochody.