W tym przewodniku szczegółowo opisujemy różne funkcje biblioteki aplikacji samochodowych, za pomocą których możesz wdrożyć funkcje wybranych miejsc (POI).
Zadeklaruj obsługę kategorii w pliku manifestu
Aplikacja musi zadeklarować androidx.car.app.category.POI
kategorię aplikacji samochodowych w filtrze intencji 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 ważnych miejsc mają dostęp do tych obiektów: PlaceListMapTemplate
i MapWithContentTemplate
.
Interfejs PlaceListMapTemplate
służy do wyświetlania listy ważnych miejsc na mapie renderowanej przez hosta.
Za pomocą MapWithContentTemplate
można wyświetlać listy i inne rodzaje treści obok mapy renderowanej przez Twoją 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żenie zawartości szablonu PlaceListMapTemplate
Możesz umożliwić kierowcom odświeżanie treści jednym kliknięciem podczas przeglądania list miejsc utworzonych przy użyciu PlaceListMapTemplate
.
Zaimplementuj metodę onContentRefreshRequested
interfejsu OnContentRefreshListener
i użyj PlaceListMapTemplate.Builder.setOnContentRefreshListener
, aby ustawić detektor w szablonie i umożliwić odświeżanie listy.
Ten fragment kodu pokazuje, jak ustawić detektor w szablonie:
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();
Przycisk odświeżania jest widoczny w nagłówku obiektu PlaceListMapTemplate
tylko wtedy, gdy detektor ma jakąś wartość.
Gdy użytkownik kliknie przycisk odświeżania, wywoływana jest metoda onContentRefreshRequested
implementacji OnContentRefreshListener
. W obiekcie onContentRefreshRequested
wywołaj metodę Screen.invalidate
. Następnie host ponownie wywołuje metodę Screen.onGetTemplate
aplikacji, aby pobrać szablon z odświeżoną treścią. Więcej informacji o odświeżaniu szablonów znajdziesz w sekcji Odświeżanie zawartości szablonu. Jeśli następny szablon zwrócony przez funkcję onGetTemplate
jest tego samego typu, jest liczony jako odświeżenie i nie wliczają się do limitu szablonu.
Integracja z Asystentem Google za pomocą akcji w aplikacji
Włączaj głosowo aplikację ważnych miejsc, używając Asystenta, by umożliwić użytkownikom wyszukiwanie ciekawych miejsc. Powiedz na przykład „OK Google, znajdź stacje ładowania w przykładowej aplikacji”. Szczegółowe instrukcje znajdziesz w artykule Działania w aplikacji w samochodach.