Aplikacja samochodowa

tworzyć aplikacje na podstawie szablonów na potrzeby Androida Auto i Androida Automotive.
Ostatnia aktualizacja Wersja stabilna Wersja kandydująca Wersja Beta Wersja alfa
15 stycznia 2025 r. 1.4.0 1.7.0-rc01 - -

Deklarowanie zależności

Aby dodać zależność od biblioteki Car App Library, musisz dodać do projektu repozytorium Google Maven. Więcej informacji znajdziesz w repozytorium Maven firmy Google.

Dodaj zależności dla artefaktów, których potrzebujesz, w pliku build.gradle aplikacji lub modułu:

Odlotowe

dependencies {
    implementation "androidx.car.app:app:1.4.0"

    // For Android Auto specific functionality
    implementation "androidx.car.app:app-projected:1.4.0"

    // For Android Automotive specific functionality
    implementation "androidx.car.app:app-automotive:1.4.0"

    // For testing
    testImplementation "androidx.car.app:app-testing:1.4.0"
}

Kotlin

dependencies {
    implementation("androidx.car.app:app:1.4.0")

    // For Android Auto specific functionality
    implementation("androidx.car.app:app-projected:1.4.0")

    // For Android Automotive specific functionality
    implementation("androidx.car.app:app-automotive:1.4.0")

    // For testing
    testImplementation("androidx.car.app:app-testing:1.4.0")
}

Więcej informacji o zależnościach znajdziesz w artykule Dodawanie zależności kompilacji.

Opinia

Twoja opinia pomoże nam ulepszyć Jetpacka. Daj nam znać, jeśli zauważysz nowe problemy lub masz pomysły na ulepszenie tej biblioteki. Zanim utworzysz nowy problem, zapoznaj się z dotychczasowymi problemami w tej bibliotece. Możesz zagłosować na istniejący problem, klikając przycisk z gwiazdką.

Tworzenie nowego zgłoszenia

Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.

Wersja 1.7

Wersja 1.7.0-rc01

15 stycznia 2025 r.

androidx.car.app:app-*:1.7.0-rc01 jest wersją stabilną, która nie zawiera żadnych istotnych zmian w porównaniu z wersją beta03. Wersja 1.7.0-rc01 zawiera te komisy.

  • To pierwsza wersja RC, która zawiera poprawkę dla błędu CVE-2024-10382 wprowadzoną w wersji beta03. Jeśli używasz wersji niższej niż 1.7-beta03, zaktualizuj ją.

Wersja 1.7.0-beta03

13 listopada 2024 r.

Usunięto lukę w zabezpieczeniach i wprowadzono inne ogólne poprawki błędów. Jeśli używasz starszej wersji, zaktualizuj ją, aby korzystać z tej wersji.

androidx.car.app:app-*:1.7.0-beta03 został zwolniony. Wersja 1.7.0-beta03 zawiera te komisy.

Zmiany w interfejsie API

  • Zaktualizuj kod serializacji i deserializacji CAL, aby obsługiwał tylko obiekty, które mają zadeklarowaną adnotację @CarProtocol. (Ic730e)
  • Teraz można używać typu CarAppExtender do rozszerzania ram Notification.Builder, a nie tylko NotificationCompat.Builder. (Id3ad7)
  • Dodaj KEY_EXCLUDE_MEDIA_ITEM_FROM_MIXED_APP_LIST. (I201f9)
  • Wycofaj pusty konstruktor Builder w ConversationItem i zastąp go konstruktorem, który przyjmuje wymagane parametry. Dodaje też sprawdzanie, które chroni przed pustymi wiadomościami. (Ic8221)

Poprawki błędów

  • Upewnij się, że mapa PlaceList używa ciągu znaków (tylko tekst) w nagłówku. (Ic992f)
  • Ta biblioteka korzysta teraz z adnotacji JSpecify dotyczących nullowości, które są używane w ramach typu. Deweloperzy Kotlina powinni używać tych argumentów kompilatora, aby wymusić prawidłowe użycie: -Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode. (Ib5367, b/326456246)

Wersja 1.7.0-beta02

18 września 2024 r.

androidx.car.app:app-*:1.7.0-beta02 został zwolniony. Wersja 1.7.0-beta02 zawiera te komity.

Zmiany w interfejsie API

  • Dodaj KEY_ROOT_HINT_MEDIA_HOST_VERSION dodatkowe (I8796b)
  • Zastąp klasę TabContents.Api8Builder konstruktorem @ExperimentalCarApi w klasie TabContents.Builder (I26fbe)
  • Dodawanie działania intencji i dodatkowych informacji w przypadku CarMediaApp (I50782)
  • Oznaczenie interfejsów API wiadomości jako nieeksperymentalne (I0b070)
  • Dodaj wczytywanie obiektów zdalnych do SectionedItemTemplate (umożliwia wczytywanie długich list bez zawieszania się) (I0d122)
  • Dodaliśmy SectionedItemTemplate do listy obsługiwanych szablonów w TabTemplate w interfejsie API 8. (Idc5d6)

Poprawki błędów

  • Usunięto ręczne określanie dostępu do nowych interfejsów API platformy, ponieważ odbywa się to automatycznie za pomocą modelowania interfejsu API podczas korzystania z R8 z AGP 7.3 lub nowszym (np. R8 w wersji 3.3) oraz we wszystkich wersjach kompilacji przy użyciu AGP 8.1 lub nowszego (np. D8 w wersji 8.1). Klienci, którzy nie korzystają z AGP, powinni zaktualizować D8 do wersji 8.1 lub nowszej. Więcej szczegółów znajdziesz w tym artykule. (I9496c, b/345472586)

Wersja 1.7.0-beta01

26 czerwca 2024 r.

androidx.car.app:app-*:1.7.0-beta01 został zwolniony. Wersja 1.7.0-beta01 zawiera te kompozycje. Funkcje są takie same jak w wersji alpha01, którą powtarzamy poniżej:

Nowe funkcje

  • Mapa z treścią: nowy szablon Map Canvas oraz szablon treści, który może być obecnie listą, siatką, panelem lub wiadomością.
    • Funkcje RoutePreview, PlaceListNavigation i MapTemplate są teraz wycofane. Szablony będą działać tak jak dotąd.
    • Przykładowe aplikacje zostały zaktualizowane, aby zamiast wycofanych szablonów pokazywały użycie MapWithContent
  • Element rozmowy:nowe interfejsy API do wyświetlania rozmów (czat, SMS) i czytania przez Asystenta w samochodzie.
  • Wymiary pojazdu: nowy interfejs API do pobierania wymiarów pojazdu (obecnie dane z AAOS).

Zmiany w interfejsie API

  • Dodaj tag @ExperimentalCarApi do MediaPlaybackTemplate.Builder. (Ic1957)
  • Dodaje nową SectionedItemTemplate w wersji eksperymentalnej. (I5958a)
  • Wprowadzenie CarAppApiLevel 8 (I3fa22)
  • Dodaje MediaPlaybackTemplate do wyświetlania treści podczas odtwarzania multimediów w Bibliotece aplikacji samochodowych. (I3c10d)
  • Dodano nowy interfejs API dla aplikacji, aby wykryć, czy system obsługuje dźwięk w tle podczas jazdy (I0f868)

Poprawki błędów

  • Rozwiązano problemy z wyciekami pamięci i awariami w kodzie klienta CAL oraz w przykładowej aplikacji nawigacyjnej CAL (I55e04).
  • Aby uniknąć awarii, zastąp instrukcję requireNotNull instances w metodzie onDestroy w klasie BaseCarAppActivity instrukcją if-null. (Iec676)

Wersja 1.7.0-alpha02

17 kwietnia 2024 r.

androidx.car.app:app-*:1.7.0-alpha02 został zwolniony. Wersja 1.7.0-alpha02 zawiera te komisy.

Nowe funkcje

  • Dodaliśmy oznaczenia zastrzeżonych flag dla szablonów opartych na mapach, które będą obsługiwane przez szablon MapWithContent.

Zmiany w interfejsie API

  • wycofanie starych funkcji MapTemplate, RoutePreviewNavigationTemplate i PlaceListNavigationTemplate oraz zachęcenie do korzystania z nowych funkcji MapWithContentTemplate (Ib0a08);

Wersja 1.7.0-alpha01

3 kwietnia 2024 r.

androidx.car.app:app-*:1.7.0-alpha01 został zwolniony. Zmieniliśmy schemat wersji biblioteki, aby był zgodny z aktywowaną wersją CarApi. Zrobiliśmy to, aby zmniejszyć dezorientację związaną ze schematem nazewnictwa. Kierowaliśmy się przy tym opiniami deweloperów. W związku z tym pominiemy wersje 1.5 i 1.6, przechodząc bezpośrednio do wersji 1.7. Wersja 1.7.0-alpha01 zawiera te commity.

Nowe funkcje

  • Mapa z treścią: nowy szablon o nazwie MapWithContent, który obsługuje listę, siatkę, panel lub wiadomość jako zawartość na mapie.
    • RoutePreview, PlaceListNavigation, szablony map zostały wycofane.
    • Przykładowe aplikacje zostały zaktualizowane, aby wyświetlać funkcje wycofanych szablonów za pomocą MapWithContent.
  • Element rozmowy: nowe interfejsy API do wyświetlania rozmów (czat, SMS) i odczytywania przez Asystenta w samochodzie.
  • Wymiary pojazdu: nowy interfejs API do pobierania wymiarów pojazdu (obecnie dane w AAOS).

Zmiany w interfejsie API

  • Oznaczenie typu obrazu w wierszu bardzo małym jako eksperymentalnego (I5184b)
  • Dodano interfejs API CarInfo#fetchExteriorDimensions, który umożliwia dostęp do informacji o wymiarach zewnętrznych pojazdu, takich jak wysokość, szerokość itp. (Ia40c5)
  • Usunięto tag ExperimentalAPI z poziomu MapWithContentTemplate (I66db8)
  • Zmień parametr GridItem#setTitle tak, aby mógł przyjmować wartość null. (I3d610)
  • Interfejs API GetHeader nie wymaga interfejsu API 7, ponieważ jest wstecznie zgodny (I8c812).
  • Dodanie obsługi Header w ListTemplate, wycofanie headerAction, headerTitle i actionStrip (I7ae01)
  • Usunięcie funkcji title, headerActionactionStrip w wersji GridTemplate oraz dodanie obsługi funkcji Header (I41a9c)
  • Usuń wymóg poziomu 7 w przypadku interfejsów API w wersji eksperymentalnej: Badge, GridTemplate gettery/settery rozmiaru elementu i kształtu obrazu, GridItem metody do pobierania i ustawiania Badge. (Id71eb)
  • Usuń funkcje title, headerAction i actionStrip w PaneTemplate, dodaj obsługę nowej funkcji Header (I23154)
  • Zmieniono telemetrię Media Center z BroadcastReceiver na przeglądanie niestandardowego działania. (I4185f)
  • Dodano obsługę atrybutu HeaderMessageTemplate. Wycofano obsługę ActionStrip, headerActiontitle. (Ie2de8)
  • Zmiana widoczności stałych alertów (Icf8a8)
  • Usuń atrybut isLoading ze szablonu nadrzędnego (I651e6).
  • Dodaj dodatkowe informacje, aby poinformować aplikacje multimedialne o głównych parametrach interfejsu (I85ca2).
  • Dodanie funkcji analizy Centrum multimediów do MediaExtensions (I7ce28)
  • Dodano opcję bardzo małego obrazu w wierszach. (I72c03)

Poprawki błędów

  • Zaktualizuj javadoc w ConversationItem, aby wskazać, że wiadomości powinny być sortowane od najstarszej do najnowszej. (I77a2a)
  • Zaktualizuj logikę skracania ListTemplate, aby usunąć najstarsze wiadomości z ConversationItem (Ie0a61)

Wersja 1.4

Wersja 1.4.0

29 maja 2024 r.

androidx.car.app:app-*:1.4.0 został zwolniony. Wersja 1.4.0 jest wersją promocyjną 1.4.0-rc02.

Ważne zmiany od wersji 1.3.0

  • Renderowanie mapy w klastrze przyrządów na potrzeby aplikacji do nawigacji
  • Szablon nowej karty zapewniający lepszy układ i użyteczność aplikacji
  • Obsługa limitów zadań dostosowanych
  • Czynności dodatkowe dotyczące elementów listy

Wersja 1.4.0-rc02

13 grudnia 2023 r.

androidx.car.app:app-*:1.4.0-rc02 został zwolniony. Wersja 1.4.0-rc02 zawiera te zatwierdzenia. tylko drobne poprawki.

Poprawki błędów

  • Zaktualizowano javadoc w ConversationItem, aby wskazać, że wiadomości powinny być sortowane od najstarszej do najnowszej (I77a2a)
  • Zaktualizuj logikę skracania ListTemplate, aby usunąć najstarsze wiadomości z ConversationItem (Ie0a61)

Wersja 1.4.0-rc01

1 listopada 2023 roku

androidx.car.app:app-*:1.4.0-rc01 została wydana bez istotnych zmian. Wersja 1.4.0-rc01 zawiera te zatwierdzenia.

Wersja 1.4.0-beta02

20 września 2023 r.

androidx.car.app:app-*:1.4.0-beta02 został zwolniony. Wersja 1.4.0-beta02 zawiera te commity. Jest to wersja prawie identyczna jak beta01, ale z wymogiem compileSdk obniżonym do 33.

Poprawki błędów

  • Naprawiono błąd polegający na tym, że ekrany wczytywania w kartach nie były prawidłowo wyświetlane. (cae860)

Wersja 1.4.0-beta01

9 sierpnia 2023 r.

androidx.car.app:app-*:1.4.0-beta01 został zwolniony. Wersja 1.4.0-beta01 zawiera te commity.

Uwaga: wersja 1.4-beta01 wymaga kompilacji Sdk34, która jest nadal w etapie rozwoju. Wersja 1.4-beta02 rozwiąże ten problem. Możesz też dodać android.suppressUnsupportedCompileSdk=34 do pliku settings.gradle projektu, aby tymczasowo wyłączyć ostrzeżenie.

Nowe funkcje

Zmiany w interfejsie API

  • Zobacz alpha02

Wersja 1.4.0-alpha02

26 lipca 2023 r.

androidx.car.app:app-*:1.4.0-alpha02 został zwolniony. Wersja 1.4.0-alpha02 zawiera te commity.

  • Wersja Alpha02 ma być przygotowaniem do nadchodzącej wersji beta01.

Nowe funkcje

  • Obsługa renderowania map w klastrze przyrządów w aplikacjach do nawigacji
  • Dodaliśmy karty dla aplikacji, aby ulepszyć układ.
  • Dodano opcje renderowania szablonów listy i siatki
  • Dodano nowe kategorie dotyczące pogody i komunikacji
  • Przeniesienie kilku interfejsów API do następnej wersji CarApi 7

Zmiany w interfejsie API

  • Dodawanie pól multimedialnych do CarMessage (I5aaf6)
  • Dodawanie działań niestandardowych do ConversationItem w Bibliotece aplikacji samochodowych (Ie5ed6)
  • Dodaj dodatkowe informacje, aby wskazać, że element multimedialny jest odtwarzany w formacie dźwięku przestrzennego, i wyświetlić logo formatu treści (Icb5bb).
  • Dodaj nowy typ działania, ActionsConstraints, aby obsługiwać przycisk tworzenia. (I31661)
  • Ustawiono set/getTemplate jako set/get ContentTemplate (Ica036)
  • Parametr szablonu będzie teraz @NonNull. Zaktualizowano MapWithContentTemplate dokumentację interfejsu API (I0f8ed)
  • Usunięcie tagu @ExperimentalCarApi w przypadku działań w elementach ListTemplate w celu ułatwienia wdrożenia wersji CAL 1.4 (I2cfcb)
  • Usuwa tag @ExperimentalCarApi dla TabTemplate (Ifcb82)
  • Usuń adnotacje @ExperimentalCarApi z działań alternatywnych i dekoracji wiersza (I8487e)
  • Dodanie identyfikatora treści aktywnej karty do TabTemplate i wycofanie stanu aktywnego na kartach (I96932)
  • Dodawanie właściwości ItemImageShape do właściwości GridTemplate (Ibf431)
  • Dodaj właściwość ItemSize do GridTemplate, która kontroluje rozmiar elementów siatki w zależności od względnych zakresów małych, średnich i dużych. (Icdb3b)
  • Otwórz dostęp do interfejsu API, aby umożliwić deweloperom uzyskanie kopii bieżącego zestawu ekranów. (I48107)
  • Dodanie kategorii aplikacji pogodowych do biblioteki aplikacji samochodowych (I2be44)
  • Dodanie kategorii aplikacji do dzwonienia do Biblioteki aplikacji samochodowych (Icab33)
  • Metody GridItem.Builder#setBadge() zostały zastąpione przeciążonymi metodami setImage() (Id2000).
  • Dodawanie właściwości ikony do plakietki (I629b2)
  • Dodaj metodę ustawiania koloru tła plakietki z kropką (I6411c)
  • Dodaj do elementu GridItem właściwość Plakietka, aby wyświetlać plakietkę na obrazie GridItem. (I95de7)
  • Dodano eksperymentalny obiekt Odznaka, który będzie reprezentować odznakę wyświetlaną na obrazie. (I9878d)

Wersja 1.4.0-alpha01

22 lutego 2023 roku

androidx.car.app:app-*:1.4.0-alpha01 został zwolniony. Wersja 1.4.0-alpha01 zawiera te commity.

Zmiany w interfejsie API

  • Dodanie działań najwyższego poziomu do GridTemplate w Bibliotece aplikacji samochodowych (Id0191)
  • Dodanie działań na najwyższym poziomie do ListTemplate w Bibliotece aplikacji samochodowych (I9efab)
  • Dodawanie dodatkowych informacji, aby połączyć napis lub opis elementu multimedialnego z innymi elementami multimedialnymi (Ic84bf)
  • Zaktualizuj poziom interfejsu API działań dotyczących wierszy do poziomu 6. (Ie0a69)
  • Dodawanie wywołań zwrotnych wiadomości do A4C (Ie3986)

Poprawki błędów

  • Dodaj brakujące odwołania do JavaDoc dla CarMessage. (I5db1c)
  • Zastąp equals()hashCode() wartościami ConversationItemCarMessage (I6fd10)
  • Ulepszona weryfikacja ConversationItem.mMessages (wymaganie, aby wartość nie była równa null i nie była pusta (Iafc51))
  • Dodawanie adnotacji @Keep do pól ConversationItem (I5d250)
  • Zaktualizowano dokumenty Java dotyczące dekoracji wiersza i dodatkowych działań. (I000b6)

Wersja 1.3

Wersja 1.3.0-rc01

7 grudnia 2022 r.

androidx.car.app:app-*:1.3.0-rc01 został zwolniony. Wersja 1.3.0-rc01 zawiera te commity.

  • Drobne poprawki błędów z wersji beta01. Bez istotnych zmian.

Wersja 1.3.0-beta01

7 września 2022 roku

Funkcje androidx.car.app:app:1.3.0-beta01, androidx.car.app:app-projected:1.3.0-beta01, androidx.car.app:app-automotive:1.3.0-beta01androidx.car.app:app-testing:1.3.0-beta01 są odblokowane. Wersja 1.3.0-beta01 zawiera te zatwierdzenia.

Nowe funkcje

Oprócz funkcji dodanych w wersji 1.3.0-alpha01 Biblioteki aplikacji samochodowych dodano te funkcje w ramach wersji beta01 (wszystkie funkcje dotyczą tylko zmian po stronie hosta bez zmian w interfejsie API):

  • Pływający pasek nawigacyjny będzie widoczny nawet wtedy, gdy użytkownik będzie na ekranie wyboru na mapie w aplikacjach PlaceListNavigationTemplate, RoutePreviewNavigationTemplateMapTemplate. Możesz to zrobić, aktualizując informacje nawigacyjne za pomocą NavigationManager.updateTrip().
  • Aby włączyć animację limitu czasu, zaznacz pole FLAG_DEFAULT obok przycisku działania. Po upływie limitu czasu ten przycisk będzie klikany domyślnie. ([API 5 - All Templates])
  • Tekst podrzędny Row nie jest skracany, gdy samochód jest zaparkowany, ale podczas jazdy jest skracany do 2 wierszy. ([API 5 - All Templates])
  • Obsługa stanu wyłączonego w przypadku Action, Toggle, Row ([API 5 - All Templates])

Zmiany w interfejsie API

  • Zmniejsz ograniczenia na liście MapTemplate, aby umożliwić wybór list (I961ed)
  • Usuń ograniczenie dotyczące działań w nagłówku, aby umożliwić używanie niestandardowych ikon. (Iad28f)
  • Dodaj ograniczenie setOnClickListenerAllowed() do ActionsConstraints. Umożliwiało to Action ustawienie OnClickDelegate() dla działań z wyjątkiem standardowych typów ikon. (TYPE_APP_ICON, TYPE_BACKTYPE_PAN) (I3c745)

Poprawki błędów

Wersja 1.3.0-alpha01

27 lipca 2022 roku

Funkcje androidx.car.app:app:1.3.0-alpha01, androidx.car.app:app-projected:1.3.0-alpha01, androidx.car.app:app-automotive:1.3.0-alpha01androidx.car.app:app-testing:1.3.0-alpha01 są odblokowane. Wersja 1.3.0-alpha01 zawiera te commity.

Funkcje opisane jako zgodne z poziomem interfejsu API 5 są zgodne z Androidem Auto 7.9 lub nowszym.

Nowe funkcje

  • Poziom API 5: nowa wartość MapTemplate, której aplikacje nawigacyjne mogą używać do wyświetlania panelu lub listy treści obok mapy (If5826, If44b8).
  • Poziom interfejsu API 5: nowy interfejs API CarAudioRecord umożliwiający nagrywanie sygnału audio za pomocą mikrofonu pojazdu gospodarza (I5e71a)
  • Poziom interfejsu API 5: nowy interfejs API SuggestionManager, który umożliwia aplikacjom przesyłanie sugestii do hosta (I5c103)
  • Poziom API 5: nowy interfejs Alert API do wyświetlania powiadomień kontekstowych na NavigationTemplate (I163a7, I5ad70)
  • Poziom API 5: nowe komponenty Header i MapController ułatwiające ponowne używanie w różnych szablonach (If5826)
  • Dodano kategorię androidx.car.app.category.POI, aby umożliwić uruchamianie aplikacji POI (wycofano kategorie androidx.car.app.category.PARKINGandroidx.car.app.category.CHARGING) (I59da1)

Zmiany w interfejsie API

  • Poziom interfejsu API 5: nowa metoda onClick w interfejsie SurfaceCallback, która umożliwia interakcję z mapą przez dotknięcie (Ia9777)
  • Poziom API 5: nowe flagi Action.FLAG_IS_PERSISTENT i Action.FLAG_DEFAULT do opisywania Action (I96318, I5ad70)
  • Poziom interfejsu API 5: nowy stan włączenia/wyłączenia komponentów Action, RowToggle (obsługa hosta zostanie wprowadzona w wersji biblioteki 1.3.0-beta01) (Id8a09)
  • Poziom interfejsu API 5: preferowanie nowego elementu Header za pomocą setHeader w przypadku PlaceListNavigationTemplate.BuilderRoutePreviewNavigationTemplate.Builder oraz wycofanie dotychczasowych metod setTitlesetHeaderAction (I30e6a).
  • Poziom interfejsu API 5: nowa metoda setOnContentRefreshListner w klasach PlaceListMapTemplate.BuilderPlaceListNavigationTemplate.Builder do użycia w implementacjach nowego interfejsu OnContentRefreshListner.
  • Poziom interfejsu API 5: nowe parametry setTripText i setTripIcon w elemencie TravelEstimate.Builder, które umożliwiają dostosowanie karty z szacunkiem czasu podróży (Idcc6d, Ic620d)
  • Dodawanie obsługi CarIconSpan w tytule PaneTemplate (Ia1ee0)
  • Dodaliśmy obsługę właściwości CarIconSpan w tytule i tekście Row (Ic1e3c).
  • Mapy ActionStrip mogą teraz zawierać maksymalnie 4 działania (If3522)
  • Zaktualizuj poziom interfejsu API aplikacji samochodowej do poziomu 5 (I26b8e).
  • Nagłówki/tytuły są teraz opcjonalne w przypadku atrybutów PlaceListMapTemplate, PlaceListNavigationTemplate, RoutePreviewNavigationTemplate, GridTemplate, ListTemplate, LongMessageTemplate, MessageTemplate, PaneTemplate i SignInTemplate (I2078d, Icadde)

Poprawki błędów

  • Zaktualizowano reguły rozmiaru obrazu PaneTemplate, aby były kwadratowym polem ograniczającym (Idd72e).
  • Rozwiązaliśmy problem z wyjątkiem, który występował, gdy po State.DESTROYED modyfikowano zestaw ekranów. (I3c8eb)
  • Dodano sprawdzanie wartości null podczas pobierania ikony aplikacji (I3f710)
  • Aktualizacja interfejsu Car Hardware API, aby domyślnie używać interfejsu STATUS_UNKNOWN zamiast STATUS_UNAVAILABLE (Ic9444)
  • Sprawdzanie, czy wyświetlacz istnieje, przed utworzeniem powierzchni (Ice027a)
  • Naprawiono błąd CarValue.equals() dotyczący STATUS_UNIMPLEMENTED (I24451)

Wersja 1.2

Wersja 1.2.0

9 listopada 2022 r.

androidx.car.app:app-*:1.2.0 został zwolniony. Wersja 1.2.0 zawiera te zatwierdzenia.

  • Jest to stabilna wersja, która nie zawiera żadnych zmian w stosunku do wersji 1.2.0-rc01.

Wersja 1.2.0-rc01

23 marca 2022 r.

androidx.car.app:app-*:1.2.0-rc01 został zwolniony. Wersja 1.2.0-rc01 zawiera te zatwierdzenia.

  • Jest to stabilna wersja, w której nie ma żadnych zmian w interfejsie API w porównaniu z wersją v1.2.0-beta02. Dodano nowe funkcje eksperymentalne (poziom interfejsu API 5) przeznaczone do przyszłych wersji Androida Auto i Androida Automotive.

Poprawki błędów

  • Rozwiązaliśmy problem z wyjątkiem, który występuje, gdy grupa ekranów zostanie zmodyfikowana po State.DESTROYED. (I3c8eb)
  • Zaktualizowano interfejs API CarSensors, aby wskazać, że nie jest on implementowany w przypadku AAOS (Idd57b).
  • Zaktualizowano PlaceListMapTempalte.Builder#setCurrentLocationEnabled, aby wskazać, że do tej funkcji wystarczy uprawnienie ACCESS_COARSE_LOCATION (I510c2)
  • Uczyniliśmy numer zjazdu opcjonalnym w przypadku typów manewrów na rondzie z zakrętem (Ife7d1).

Wersja 1.2.0-beta02

26 stycznia 2022 r.

androidx.car.app:app-*:1.2.0-beta02 został zwolniony. Wersja 1.2.0-beta02 zawiera te commity.

Aplikacje samochodowe utworzone z użyciem tej wersji biblioteki na platformę Android Automotive OS można teraz publikować w otwartym kanale testowania w Sklepie Play. Więcej informacji znajdziesz w przewodniku dla programistów.

Funkcje oznaczone jako API na poziomie 4 lub niższym są zgodne zarówno z Android Auto w wersji 7.2 lub nowszej, jak i z nową platformą Android Automotive OS. Więcej informacji znajdziesz w sekcji Known Issues poniżej.

Zmiany w interfejsie API

  • Dodano eksperymentalny interfejs API setOnContentRefreshListener do szablonów punktów zainteresowania (I6bf22).

Poprawki błędów

  • Naprawiliśmy wyciek pamięci w CarAppService, gdy gospodarz samochodu odłączył się od usługi. (I5c9ca, b/203594731)
  • Zaktualizowano CarAppActivity javadoc, aby uwzględnić wymagania dotyczące trybu uruchamiania singleTask (Id2f95)
  • Zmniejszenie wizualnego błędu podczas wznawiania. (Iff7e0)

Znane problemy

  • Mapy ActionStrip w wersjach PlaceListNavigationTemplateRoutePreviewNavigateTemplate staną się dostępne w kolejnych wersjach Android AutoAndroid Automotive OS.

Wersja 1.2.0-alpha02

15 grudnia 2021 roku

androidx.car.app:app-*:1.2.0-alpha02 został zwolniony. Wersja 1.2.0-alpha02 zawiera te commity.

Funkcje oznaczone adnotacjami z poziomem interfejsu API 4 zostały przekształcone z wersji eksperymentalnej w stabilną.Dotyczy to map ActionStrip w elementach PlaceListNavigationTemplateRoutePreviewNavigateTemplate, obrazu CarIcon w elementach Pane, elementu QRCodeSignInMethod oraz możliwości ustawiania wskazówek dotyczących renderowania (np. flag) w elementach Action.

Nowe funkcje

  • W Androidzie Auto 7.1 lub nowszym limit elementów Pane został zwiększony z 2 na 4.

Zmiany w interfejsie API

  • Dodano eksperymentalną metodę toString() do klasy CarUnit(I36a3b).

Poprawki błędów

  • Naprawiono błąd powodujący awarię w funkcji CarAppPermissionActivity, jeśli wywołanie zwrotne nie działa (If9823)
  • Zmieniono domyślny limit listy Pane na 4 (I0068b)

Wersja 1.2.0-alpha01

3 listopada 2021 r.

androidx.car.app:app-*:1.2.0-alpha01 został zwolniony. Wersja 1.2.0-alpha01 zawiera te commity.

Wszystkie nowe funkcje v1.2.0 (API 4+) są obecnie funkcjami eksperymentalnymi kierowanymi na przyszłe wersje Androida Auto i Androida Automotive. Więcej informacji znajdziesz w przewodniku dla programistów.

Zmiany w interfejsie API

  • Interfejs API AutomotiveCarInfo jest teraz eksperymentalny. (Ia13e5)
  • Dodano interfejs API biblioteki aplikacji samochodowych na poziomie 4 (I2a2e7).
  • Poziom 4 interfejsu API: dodano obsługę ustawienia CarIconPane (Ifcc12).
  • Poziom interfejsu API 4: dodano metodę logowania za pomocą kodu QR (Ib623e).
  • Poziom API 4: dodano interfejs set/getFlags do Action (Ic03ab).
  • Poziom API 4: dodano obsługę przesuwania i powiększania w funkcjach PlaceListNavigationTemplateRoutePreviewNavigationTemplate (I9d8a3).

Poprawki błędów

  • Poziom interfejsu API 4: dodaj mechanizm umożliwiający aplikacjom wysyłanie aktualizacji lokalizacji do hosta samochodu (I3bad3).
  • Rozwiązanie problemu, który powodował, że logika weryfikacji hosta nie znajdowała prawidłowo uprawnienia TEMPLATE_RENDERER (I62618)

Wersja 1.1.0

Wersja 1.1.0

15 grudnia 2021 roku

androidx.car.app:app-*:1.1.0 został zwolniony. Wersja 1.1.0 zawiera te zatwierdzenia.

Jest to wersja stabilna, która nie zawiera żadnych zmian w porównaniu z wersją v1.1.0-rc01. Więcej informacji o nowych funkcjach biblioteki aplikacji samochodowych znajdziesz w informacjach o wersji v1.2.0-alpha02.

Ważne zmiany od wersji 1.0.0

  • Poziom 2 interfejsu API: SignInTemplateLongMessageTemplate, które można używać do logowania się, gdy pojazd jest zaparkowany.
  • Poziom interfejsu API 2: obsługa interaktywności map w ramach NavigationTemplate
  • Poziom 2 interfejsu API: obsługa tekstu o różnej długości, która umożliwia aplikacjom wyświetlanie wielu wersji ciągu znaków w zależności od rozmiaru ekranu samochodu.
  • Poziom interfejsu API 3: CarHardwareManager, który może służyć do wysyłania zapytań o dane sprzętowe pojazdu, takie jak model i marka, poziom paliwa i inne czujniki.

Wersja 1.1.0-rc01

3 listopada 2021 r.

androidx.car.app:app-*:1.1.0-rc01 został zwolniony. Wersja 1.1.0-rc01 zawiera te zatwierdzenia.

Jest to stabilna wersja, w której nie ma żadnych zmian w interfejsie API w porównaniu z wersją v1.1.0-beta01. Dodano nowe funkcje eksperymentalne (poziom interfejsu API 4) przeznaczone do przyszłych wersji Androida Auto. Więcej informacji o interfejsach API w wersji eksperymentalnej znajdziesz w informacjach o wersji v1.2.0-alpha01.

Wersja 1.1.0-beta01

1 września 2021 roku

androidx.car.app:app-*:1.1.0-beta01 został zwolniony. Wersja 1.1.0-beta01 zawiera te commity.

Wszystkie funkcje v1.1.0 (API 2+) są w pełni zgodne z Androidem Auto w wersji 6.7 lub nowszej. Więcej informacji znajdziesz w przewodniku dla programistów.

Zmiany w interfejsie API

  • Usunięto Manager jako interfejs publiczny (Ie381b).
  • Dodano możliwość ustawienia niestandardowego tła z logo marki dla prośby o uprawnienia (I74b76)
  • Dodano ScreenManager.getStackSize (I0b16a)
  • Usunięto konstruktor ScreenController, który przyjmuje argument TestCarContext (Iefebc).

Poprawki błędów

  • Dodano sprawdzanie poziomu interfejsu API podczas tworzenia CarHardwareManager (I48f9b)
  • Dodano mechanizmy kontroli nieprawidłowego użycia interfejsu API CarSpan (I65ae6).
  • Rozwiązano problem polegający na tym, że jeśli podczas tworzenia Screen został oznaczony jako zakończony, pozostawał w nieprawidłowym stanie (I81b13).
  • Naprawiono problem, który powodował, że CarNotificationManager.notify rejestrował błąd AutomotiveOS, jeśli w CarAppExtender były działania z ikonami (I3633d).
  • Dodano metodę uścisku dłoni dla aplikacji i hosta, aby ustalić wersję interfejsu API (I7d6f8)

Wersja 1.1.0-alpha02

21 lipca 2021 r.

androidx.car.app:app-*:1.1.0-alpha02 został zwolniony. Wersja 1.1.0-alpha02 zawiera te commity.

Nowe funkcje

  • Interfejs API poziomu 3: dodano CarHardwareManager, który umożliwia wysyłanie zapytań o dane sprzętowe pojazdu, takie jak model i marka, poziom paliwa i inne czujniki. Obecnie ta funkcja jest dostępna tylko w Android Auto w wersji 6.7 i nowszej w ramach otwartego kanału testowego. Testowanie tej funkcji w środowisku komputera wymaga nowej wersji aplikacji Desktop Head Unit, która zostanie wydana osobno. Szczegółowe informacje o tym, kiedy nowa wersja będzie dostępna, znajdziesz na stronie testowania aplikacji na Androida na potrzeby samochodów.
  • Aby uzyskać więcej informacji i wytycznych dotyczących projektowania, jak korzystać z tych funkcji w urządzeniach samochodowych zgodnych z interfejsem API w poziomie 3, zapoznaj się z przewodnikiem dla programistów i dokumentacją biblioteki.

Zmiany w interfejsie API

  • Połączenie metod cyklu życia SessionController i ScreenController w jedną metodę moveToState (I1ed00)
  • Dodano CarContext#getHostInfo() (I8977e)
  • Usunięto wycofane pola. (I67168)
  • Zmiana funkcji SessionControllerScreenController w celu bezpośredniego wyświetlania konstruktorów (Iabf22).
  • Usunięto PinSignInMethod.BuilderProviderSignInMethod.Builder (I9f0cb).
  • Dodano funkcję „setCarAppResult()”, aby umożliwić korzystanie z aplikacji z wykorzystaniem szablonów „for result” w AAOS (I37741).
  • Oznaczone adnotacjami interfejsy CarHardware w programie @MainThread. (Ib2f85)
  • Nazwa OnCarDataListener została zmieniona na OnCarDataAvailableListener (I518ca)
  • Zaktualizowano nazwy metod CarInfo, SpeedMileage oraz dokumentację javadoc. (I86672)
  • Nazwa Toll została zmieniona na TollCard. (I3e7c8)
  • Usunięto wycofane pole PinSignInMethod.getPin, które zostało zastąpione przez pole PinSignInMethod.getPinCode (I996ce)
  • Usunięto OnInputCompletedListener (zastąpiono go elementem InputCallback). (Ib5be1)
  • Zmieniono kolumnę PinSignInMethod tak, aby przyjmowała wartość CharSequence zamiast String (I275d5).

Poprawki błędów

  • poprawki Javadoc dla sprzętu samochodowego; (I2abbc)

Darowizna zewnętrzna

Znane problemy

  • SignInTemplate korzystanie z InputSignInMethod może spowodować NullPointerException dla gospodarza samochodu. Ten problem zostanie rozwiązany w kolejne wydanie biblioteki. Aby obejść ten problem, dodaj ten wiersz do konfiguracji Proguarda aplikacji: -keep class androidx.car.app.model.signin.InputSignInMethod { *; }

Wersja 1.1.0-alpha01

16 czerwca 2021 r.

Funkcje androidx.car.app:app:1.1.0-alpha01, androidx.car.app:app-automotive:1.1.0-alpha01androidx.car.app:app-testing:1.1.0-alpha01 są dostępne. Wersja 1.1.0-alpha01 zawiera te commity.

Nowe funkcje

  • Poziom interfejsu API 2: nowe parametry SignInTemplateLongMessageTemplate, które można używać do logowania się, gdy pojazd jest zaparkowany.
  • Poziom interfejsu API 2: obsługa nowych interakcji z mapą w ramach NavigationTemplate
  • Poziom 2 interfejsu API: nowa obsługa tekstu o różnej długości, która umożliwia aplikacjom wyświetlanie wielu wersji ciągu znaków w zależności od rozmiaru ekranu samochodu.
  • Aby uzyskać więcej informacji i poznać wytyczne dotyczące korzystania z tych funkcji w urządzeniach samochodowych zgodnych z interfejsem API w wersji 2, zapoznaj się z przewodnikiem dla programistów i dokumentacją Javadoc biblioteki.

Zmiany w interfejsie API

  • Wszystkie metody interfejsu *Callback zostały ustawione jako domyślne i przemianowane z OnRequestPermissionsCallback na OnRequestPermissionsListener (Ib3ec9).
  • Zaktualizowano klasy androidx.car.app.hardware, aby usunąć zbędne klasy konstruktorów i parametrów. (I67beb)
  • Dodaliśmy klasy androidx.car.app.hardware, które umożliwiają dostęp do danych dotyczących samochodu, takich jak paliwo, bateria i prędkość. (Iff3c9)
  • Dodano obsługę ActionStrip w MessageTemplate (Ida657)
  • Dodano setLoading do MessageTemplate. (I2a4b5)
  • Nazwa ConnectionToCar została zmieniona na CarConnection (Ife9bd)
  • Zmieniono funkcję NavigationTemplate, aby zwracała jawną wartość PanModeDelegate (I13877).
  • Zmieniono kolejność parametrów w przypadku zdarzenia CarContext.requestPermissions (aktualizacja Ib890a).
  • Zaktualizowano klucz metadanych, aby zdefiniować minimalny poziom interfejsu API samochodu na androidx.car.api.minCarApiLevel (Ib0d41).
  • Utworzono interfejs API, który umożliwia obserwowanie stanu połączenia samochodu (Ifc935)
  • Dodano obsługę przełącznika dla Action oraz trybu przesuwania Action (Ica6af).
  • Utworzono CarNotificationManager, aby obsługiwać wysyłanie powiadomień w samochodzie (I10d7a).
  • Dodano ConstraintManager, aby udostępniać limity list od hosta (I8690e)
  • Dodano interfejs API trybu przesuwania i paska działań mapy w NavigationTemplate (I77aa6).
  • Dodano interfejs API do przesuwania i powiększania w aplikacji SurfaceCallback (Id5e9d)
  • Zaktualizowano CarAppApiLevel do 2 (Ic1540)
  • Dodano możliwość żądania uprawnień z poziomu CarAppService (I5421e)
  • Dodano adnotację RequiresCarApi(2) do interfejsu multi-text API (Iacb62).
  • Dozwolono na kilka wariantów tekstu w tytule szablonu połowy listy (Ib8df7)
  • Dodano nowe LongMessageTemplate (wymaga interfejsu Car API na poziomie 2) (Ic5cee)

Poprawki błędów

  • Zaktualizowano wymagania dotyczące rozmiaru obrazu, aby uwzględnić większe ekrany samochodowe (I116dc)
  • Dodanie więcej niż 2 działań w tekstach szablonów jest niedozwolone (I32157)
  • Upewnij się, że wszystkie flagi PendingIntent zostały utworzone w bibliotece aplikacji samochodowych. (If84fe, b/186394900)
  • Zaktualizowano javadoc, aby umożliwić zmiany tekstu w Row podczas odświeżania (If3f9c).
  • androidx.activity:activity:1.2.0 jest teraz zależnością interfejsu API (Id1cb9)
  • W ciele interfejsów SignInTemplateLongMessageTemplate wymagamy podania działań, które można wykonać tylko podczas parkowania, oraz zaktualizowaliśmy dokumentację, aby wskazać, że te działania będą widoczne tylko wtedy, gdy samochód jest zaparkowany (Iddaa9).
  • Usunięto wyjątek, który występuje podczas Screen na początku (Ifcf40, b/184664896)
  • Dozwolony niestandardowy kolor tekstu w ForegroundCarColorSpan (I69e59)
  • Rozwiązanie problemu polegającego na tym, że po ON_DESTROY SessionSession jest obserwowany jako ON_DESTROY (I52e01, b/183696617)Screen
  • Zaktualizowano javadoc, aby umożliwić ustawienie nieznanego czasu pozostałego dla TravelEstimate. (I99610, b/183632456)
  • Zaktualizowano Action, aby obsługiwać ForegroundColorSpan w tytule i dowolny niestandardowy kolor tła (I578e4).
  • Nie wykonuj NavigationManagerCallback#onStopNavigation, jeśli wywołanie zwrotne zostanie wyczyszczone przed wykonaniem wykonawcy (I7fc5e, b/181143772)
  • Naprawiono błąd, który wymagał od aplikacji jawnej zależności od biblioteki lifecycle-common-java8 (I8b8c8).

Znane problemy

  • SignInTemplate, gdy użytkownik chce potwierdzić dane, klawiatura ekranowa wyświetla ikonę „szukaj” zamiast ikony „Enter”. Jako obejście tego problemu użytkownicy mogą korzystać z klawiatury telefonu, która aktywuje się, gdy pole wprowadzania jest aktywne.
  • W wersji 6.5 aplikacji Android Auto wywołania zwrotne przesuwania i powiększania w funkcji SurfaceCallback mogą być nieprawidłowo wywoływane w przypadku niektórych gestów dotykowych.

Testowanie aplikacji samochodowej w wersji 1.0.0

Wersja 1.0.0-alpha01

24 marca 2021 r.

androidx.car.app:app-testing:1.0.0-alpha01 został zwolniony. Wersja 1.0.0-alpha01 zawiera te commity.

To pierwsza wersja Jetpacka z biblioteki testów o zamkniętym kodzie źródłowym. Aby dowiedzieć się, jak używać tej biblioteki w testach, zapoznaj się z naszą biblioteką przykładów.

Nowe funkcje

  • Kontrolery klas modeli zostały usunięte. Funkcje pobierania modeli są teraz częścią publicznego interfejsu API, co umożliwia sprawdzanie wartości ustawionych w elementach budujących.
  • Poprzednia wartość CarAppServiceController została zastąpiona nową wartością SessionController, aby umożliwić testowanie logiki związanej z czasem trwania połączenia z hots.

Wersja 1.0.0

Wersja 1.0.0

21 kwietnia 2021 r.

androidx.car.app:app:1.0.0 został zwolniony. Wersja 1.0.0 zawiera te zatwierdzenia.

Najważniejsze funkcje wersji 1.0.0

  • Na początku kwietnia ogłosiliśmy, że aplikacje mogą być publikowane w wersji produkcyjnej za pomocą androidx.car.app:app:1.0.0-rc01. Biblioteka aplikacji samochodowych w wersji 1.0.0 jest teraz stabilna i w pełni zgodna z Androidem Auto w wersji 6.1 lub nowszej.
  • Więcej informacji o tworzeniu aplikacji do nawigacji, parkowania i ładowania na potrzeby Androida Auto za pomocą biblioteki znajdziesz w przewodniku dla programistów.

Poprawki błędów

  • Naprawiono wyjątek, który występuje podczas wywołania Screen na początku (70aae1, b/184664896).
  • Rozwiązanie problemu polegającego na tym, że po ON_DESTROY Session występuje ON_DESTROY (0ceecb, b/183696617)Screen

Wersja 1.0.0-rc01

24 marca 2021 r.

androidx.car.app:app:1.0.0-rc01 został zwolniony. Wersja 1.0.0-rc01 zawiera te zatwierdzenia.

Poprawki błędów

  • Rozwiązaliśmy błąd związany z warunkiem wyścigu, w którym funkcja NavigationManagerCallback#onStopNavigation była wywoływana po wyczyszczeniu funkcji wywołania zwrotnego. Wystąpiło to, gdy wywołanie zwrotne zostało usunięte, zanim wykonawca wywołania zwrotnego został faktycznie uruchomiony (I7fc5e, b/181143772).
  • Naprawiono błąd, który wymagał od aplikacji jawnej zależności od lifecycle-common-java8 (I8b8c8).
  • Rozwiązanie problemu z NullPointerException, który występował, gdy aplikacja otrzymywała wywołanie stopNavigation, mimo że wywołanie zwrotne zostało już usunięte (Ib8b89, b/181143772)
  • Ulepszenia, które zapobiegają wysyłaniu wywołań do aplikacji, jeśli jej cykl życia nie jest co najmniej w stanie CREATED (I86965, b/179800224, b/177921120)
  • Rozwiązaliśmy problem, który polegał na tym, że nieprawidłowa minimalna wersja interfejsu API określona w pliku manifestu aplikacji powodowała wyświetlenie powiadomienia ANR w hoście. (Iffedd, b/174231592)

Wersja 1.0.0-beta01

24 lutego 2021 r.

androidx.car.app:app:1.0.0-beta01 został zwolniony. Wersja 1.0.0-beta01 zawiera te commity.

To pierwsza wersja Jetpacka biblioteki z zamkniętym kodem źródłowym. Jest ona zgodna z Androidem Auto w wersji 6.1 lub nowszej. Więcej informacji o tworzeniu aplikacji samochodowych za pomocą tej biblioteki znajdziesz w przewodniku dla programistów.

Nowe funkcje

Poprawki błędów

  • Rozwiązaliśmy problem polegający na tym, że po wyświetleniu kolejnych ekranów niewłaściwie wznawiana była praca Screen. (b/177590791)