Tworzenie aplikacji do poznania ciekawych miejsc

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 PlaceListMapTemplateMapWithContentTemplate.

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.