Tworzenie aplikacji do poznania ciekawych miejsc

Ten przewodnik zawiera szczegółowe informacje o różnych funkcjach biblioteki aplikacji w samochodzie które można wykorzystać do wdrożenia funkcji ważnego miejsca. .

Zadeklaruj obsługę kategorii w pliku manifestu

Aplikacja musi zadeklarować androidx.car.app.category.POI Kategoria aplikacji samochodu w filtrze intencji jego 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 do ważnych miejsc mają dostęp do: PlaceListMapTemplate i MapWithContentTemplate.

Interfejs PlaceListMapTemplate został zaprojektowany do wyświetlania listy ważne miejsca obok mapy renderowanej przez gospodarza.

MapWithContentTemplate może służyć do wyświetlania list i innych rodzajów danych: obok mapy renderowanej przez Twoją aplikację. Zobacz Aby dowiedzieć się więcej o korzystaniu z tej funkcji, rysuj mapy szablon.

Aby uzyskać dostęp do tych szablonów, aplikacja musi zadeklarować parametr 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 pozwolić kierowcom na odświeżanie treści jednym kliknięciem podczas przeglądania Listy miejsc zbudowanych za pomocą PlaceListMapTemplate Zaimplementuj tag OnContentRefreshListener onContentRefreshRequested interfejsu i metody PlaceListMapTemplate.Builder.setOnContentRefreshListener , aby ustawić detektor w szablonie i włączyć 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 tylko w nagłówku sekcji PlaceListMapTemplate, jeśli detektor ma wartość.

Gdy użytkownik kliknie przycisk odświeżania, onContentRefreshRequested metody implementacji OnContentRefreshListener. W ciągu onContentRefreshRequested, wywołaj Screen.invalidate. . Host następnie oddzwoni do Twojej aplikacji Screen.onGetTemplate do pobrania szablonu z odświeżoną treścią. Patrz sekcja Odświeżanie zawartość szablonu, aby dowiedzieć się więcej o tym, odświeżenie szablonów. Jeśli następny szablon zwrócony przez onGetTemplate jest tego samego typu, jest liczone jako odświeżenie i nie jest liczone limit 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 punktów zainteresowanie, zadając na przykład „OK Google, znajdź stacje ładowania w pobliżu PrzykładowaAplikacja”. Szczegółowe instrukcje znajdziesz w artykule Działania w aplikacji w samochodach.