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.