Aplikacja samochodowa
Ostatnia aktualizacja | Wersja stabilna | Wersja kandydująca do publikacji | 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. Jeśli zauważysz nowe problemy lub masz pomysły na ulepszenie tej biblioteki, daj nam znać. 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ą.
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ęliśmy lukę w zabezpieczeniach i wprowadziliśmy inne ogólne poprawki błędów. Jeśli używasz starszej wersji, zaktualizuj ją, aby korzystać z tej wersji.
Element androidx.car.app:app-*:1.7.0-beta03
został zwolniony. Wersja 1.7.0-beta03 zawiera te zatwierdzenia.
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 ramkiNotification.Builder
, a nie tylkoNotificationCompat.Builder
. (Id3ad7) - Dodaj dodatkowe
KEY_EXCLUDE_MEDIA_ITEM_FROM_MIXED_APP_LIST
. (I201f9) - Wycofaj pusty konstruktor Builder na
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
- Sprawdź, czy mapa
PlaceList
używa ciągu znaków (tylko tekst) w nagłówku. (Ic992f) - Biblioteka ta korzysta teraz z adnotacji JSpecify dotyczących nullowości, które są używane w zależności od typu. Aby wymusić prawidłowe użycie, deweloperzy Kotlina powinni użyć tego argumentu kompilatora:
-Xjspecify-annotations=strict
(jest to domyślna wartość od wersji 2.1.0 kompilatora Kotlina). (Ib5367, b/326456246)
Wersja 1.7.0-beta02
18 września 2024 r.
Element 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 klasieTabContents.Builder
(I26fbe) - Dodawanie działania intencji i dodatkowych informacji dla
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 wTabTemplate
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, gdy korzystasz z R8 z AGP 7.3 lub nowszej wersji (np. R8 w wersji 3.3) oraz we wszystkich wersjach kompilacji, gdy korzystasz z AGP 8.1 lub nowszej wersji (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.
Element androidx.car.app:app-*:1.7.0-beta01
został zwolniony. Wersja 1.7.0-beta01 zawiera te komity. Funkcje są takie same jak w wersji alpha01, którą powtarzamy poniżej:
Nowe funkcje
- Mapa z treściami: nowy szablon Map Canvas oraz szablon treści, który może być obecnie listą, siatką, panelem lub wiadomością.
- Funkcje
RoutePreview
,PlaceListNavigation
iMapTemplate
zostały wycofane. Szablony będą działać tak jak dotąd. - Przykładowe aplikacje zostały zaktualizowane, aby zamiast wycofanych szablonów pokazywać użycie
MapWithContent
- Funkcje
- 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
doMediaPlaybackTemplate.Builder
. (Ic1957) - Dodaje nową opcję
SectionedItemTemplate
w wersji eksperymentalnej. (I5958a) - Introduce
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 wykrywać, czy system obsługuje dźwięk w tle podczas jazdy (I0f868)
Poprawki błędów
- Naprawiono niektóre przypadki wycieków pamięci i zawieszeń w kodzie klienta CAL oraz w przykładowej aplikacji nawigacyjnej CAL (I55e04).
- Aby uniknąć awarii, w metodzie
onDestroy
klasyBaseCarAppActivity
zastąp instrukcjęrequireNotNull instances
instrukcją if-null. (Iec676)
Wersja 1.7.0-alpha02
17 kwietnia 2024 r.
Element androidx.car.app:app-*:1.7.0-alpha02
został zwolniony. Wersja 1.7.0-alpha02 zawiera te komisy.
Nowe funkcje
- Dodaliśmy oznaczenia przestarzałych 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
iPlaceListNavigationTemplate
oraz zachęcanie do korzystania z nowych funkcjiMapWithContentTemplate
(Ib0a08)
Wersja 1.7.0-alpha01
3 kwietnia 2024 r.
Element 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ły funkcje wycofanych szablonów za pomocą
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
- 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 poziomuMapWithContentTemplate
(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
wListTemplate
, wycofanieheaderAction
,headerTitle
iactionStrip
(I7ae01) - Wycofanie funkcji
title
,headerAction
iactionStrip
w wersjiGridTemplate
oraz dodanie obsługi funkcjiHeader
(I41a9c) - Usuń wymóg poziomu 7 w przypadku interfejsów API w wersji eksperymentalnej: Badge,
GridTemplate
metody pobierania i ustawiania rozmiaru elementu oraz kształtu obrazu,GridItem
metody pobierania i ustawiania plakietki. (Id71eb) - Wycofanie funkcji
title
,headerAction
iactionStrip
wPaneTemplate
oraz dodanie obsługi nowej funkcjiHeader
(I23154) - Zmieniono telemetrię Media Center z
BroadcastReceiver
na przeglądanie działania niestandardowego. (I4185f) - Dodano obsługę atrybutu
Header
wMessageTemplate
. Wycofana obsługaActionStrip
,headerAction
ititle
. (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) - Zaktualizowano logikę skracania
ListTemplate
, aby usuwać najstarsze wiadomości zConversationItem
(Ie0a61)
Wersja 1.4
Wersja 1.4.0
29 maja 2024 r.
Element androidx.car.app:app-*:1.4.0
został zwolniony. Wersja 1.4.0 jest wersją promocyjną wersji 1.4.0-rc02.
Ważne zmiany od wersji 1.3.0
- Renderowanie mapy w klastrze przyrządów w aplikacjach do nawigacji
- Szablon nowej karty zapewniający lepszy układ i użyteczność aplikacji
- Obsługa limitów zadań adaptacyjnych
- Czynności dodatkowe dotyczące elementów listy
Wersja 1.4.0-rc02
13 grudnia 2023 r.
Element 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) - Zaktualizowano logikę skracania
ListTemplate
, aby usuwać najstarsze wiadomości zConversationItem
(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.
Element 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 kart nie były prawidłowo wyświetlane. (cae860)
Wersja 1.4.0-beta01
9 sierpnia 2023 r.
Element 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 plikusettings.gradle
projektu, aby tymczasowo wyłączyć ostrzeżenie.
Nowe funkcje
- Renderowanie mapy w klastrze przyrządów w przypadku aplikacji do nawigacji
- Nowy szablon karty zapewniający lepszy układ i użyteczność aplikacji
- Obsługa limitów zadań adaptacyjnych
- Czynności dodatkowe dotyczące elementów listy
Zmiany w interfejsie API
- Zobacz alpha02
Wersja 1.4.0-alpha02
26 lipca 2023 r.
Element 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
- Renderowanie map na desce rozdzielczej w przypadku aplikacji 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
, interfejs API do obsługi przycisku tworzenia. (I31661) - Ustawiono
set/getTemplate
jakoset/get ContentTemplate
(Ica036) - Parametr szablonu będzie teraz
@NonNull
. Zaktualizowano dokumentacjęMapWithContentTemplate
interfejsu API (I0f8ed) - Usunięcie tagu
@ExperimentalCarApi
dla działań w sekcjiListTemplate
w przypadku wersji 1.4 CAL (I2cfcb). - Usuwa tag
@ExperimentalCarApi
dlaTabTemplate
(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ściGridTemplate
(Ibf431) - Dodaj właściwość
ItemSize
doGridTemplate
, która kontroluje rozmiar elementów siatki zgodnie z względnymi zbiorami małych, średnich i dużych elementów. (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 metodamisetImage()
(Id2000). - Dodawanie właściwości ikony do plakietki (I629b2)
- Dodaj metodę ustawiania koloru tła plakietki z kropką (I6411c)
- Dodaj do
GridItem
właściwość Plakietka, aby wyświetlać plakietkę na obrazieGridItem
. (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
Element androidx.car.app:app-*:1.4.0-alpha01
został zwolniony. Wersja 1.4.0-alpha01 zawiera te commity.
Zmiany w interfejsie API
- Dodanie do
GridTemplate
w Bibliotece aplikacji samochodowych działań na najwyższym poziomie (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 dla działań na wierszu do poziomu 6. (Ie0a69)
- Dodawanie wywołań zwrotnych wiadomości do A4C (Ie3986)
Poprawki błędów
- Dodaj brakujące odwołania do dokumentacji Java dotyczące
CarMessage
. (I5db1c) - Zastąp wartości
equals()
ihashCode()
wartościamiConversationItem
iCarMessage
(I6fd10) - Ulepszona walidacja
ConversationItem.mMessages
(wymaganie, aby wartość nie była równa null i nie była pusta (Iafc51)) - Dodawanie adnotacji
@Keep
do pólConversationItem
(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.
Element 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
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-beta01
i androidx.car.app:app-testing:1.3.0-beta01
są odblokowane. Wersja 1.3.0-beta01 zawiera te zatwierdzenia.
- Aplikacje samochodowe utworzone za pomocą tej biblioteki mogą teraz trafić do Sklepu Play przy użyciu poziomu interfejsu API 5 (zobacz nasz przewodnik dla programistów). Funkcje o poziomie interfejsu API 5 lub niższym są zgodne z urządzeniami Android Auto 8.1 lub nowszymi oraz hostem aplikacji samochodowej Google 1.4 lub nowszym.
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
,RoutePreviewNavigationTemplate
iMapTemplate
. 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 domyślnie klikany. ([API 5 - All Templates]
) - Tekst podrzędny
Row
nie jest skracany, gdy samochód jest zaparkowany, ale jest skracany do 2 wierszy podczas jazdy. ([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()
doActionsConstraints
. Umożliwiało toAction
ustawienieOnClickDelegate()
dla działań z wyjątkiem standardowych typów ikon. (TYPE_APP_ICON
,TYPE_BACK
iTYPE_PAN
) (I3c745)
Poprawki błędów
- Dodano zgodność składnika Android Automotive Template Host w wersji 1.4 lub nowszej z wyświetlaczami zakrzywionymi (
[Host change]
).
Wersja 1.3.0-alpha01
27 lipca 2022 roku
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-alpha01
i androidx.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 API
Alert
do wyświetlania powiadomień kontekstowych na stronieNavigationTemplate
(I163a7, I5ad70) - Poziom API 5: nowe komponenty
Header
iMapController
ułatwiające ponowne używanie w różnych szablonach (If5826) - Dodano kategorię
androidx.car.app.category.POI
, aby umożliwić tworzenie aplikacji z miejscami docelowymi (wycofano kategorieandroidx.car.app.category.PARKING
iandroidx.car.app.category.CHARGING
) (I59da1)
Zmiany w interfejsie API
- Poziom interfejsu API 5: nowa metoda
onClick
w interfejsieSurfaceCallback
, która umożliwia interakcję z mapą przez dotknięcie (Ia9777) - Poziom API 5: nowe flagi
Action.FLAG_IS_PERSISTENT
iAction.FLAG_DEFAULT
do opisywaniaAction
(I96318, I5ad70) - Poziom interfejsu API 5: nowy stan włączenia/wyłączenia komponentów
Action
,Row
iToggle
(obsługa hosta zostanie wprowadzona w wersji biblioteki 1.3.0-beta01) (Id8a09) - Poziom interfejsu API 5: preferuj nowy element
Header
za pomocąsetHeader
w przypadkuPlaceListNavigationTemplate.Builder
iRoutePreviewNavigationTemplate.Builder
, wycofując istniejące metodysetTitle
isetHeaderAction
(I30e6a). - Poziom interfejsu API 5: nowa metoda
setOnContentRefreshListner
w klasachPlaceListMapTemplate.Builder
iPlaceListNavigationTemplate.Builder
do użycia w implementacjach nowego interfejsuOnContentRefreshListner
. - Poziom interfejsu API 5: nowe parametry
setTripText
isetTripIcon
w metadanychTravelEstimate.Builder
, które umożliwiają dostosowanie karty z szacunkiem czasu podróży (Idcc6d, Ic620d) - Dodawanie obsługi
CarIconSpan
w tytulePaneTemplate
(Ia1ee0) - Dodawanie obsługi
CarIconSpan
w tytule i tekścieRow
(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
iSignInTemplate
(I2078d, Icadde)
Poprawki błędów
- Zaktualizowano reguły rozmiaru obrazu
PaneTemplate
, aby zawierały kwadratowy prostokąt ograniczający (Idd72e). - Rozwiązaliśmy problem z wyjątkami, który występował, gdy modyfikowano grupę ekranów po
State.DESTROYED
. (I3c8eb) - Dodano sprawdzanie wartości null podczas pobierania ikony aplikacji (I3f710)
- Aktualizacja interfejsu Car Hardware API, aby domyślnie używać interfejsu
STATUS_UNKNOWN
zamiastSTATUS_UNAVAILABLE
(Ic9444) - Sprawdzanie, czy wyświetlacz istnieje, przed utworzeniem powierzchni (Ice027a)
- Naprawiono błąd
CarValue.equals()
dotyczącySTATUS_UNIMPLEMENTED
(I24451)
Wersja 1.2
Wersja 1.2.0
9 listopada 2022 r.
Element 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.
Element 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), które są przeznaczone do przyszłych wersji Androida Auto i Androida Automotive.
Poprawki błędów
- Rozwiązaliśmy problem z wyjątkami, który występował, gdy modyfikowano grupę ekranów 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 uprawnienia ACCESS_COARSE_LOCATION wystarczą do obsługi tej funkcji (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.
Element 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 po wznowieniu. (Iff7e0)
Znane problemy
- Mapy
ActionStrip
w wersjachPlaceListNavigationTemplate
iRoutePreviewNavigateTemplate
staną się dostępne w kolejnych wersjachAndroid Auto
iAndroid Automotive OS
.
Wersja 1.2.0-alpha02
15 grudnia 2021 roku
Element 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 PlaceListNavigationTemplate
i RoutePreviewNavigateTemplate
, 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()
doCarUnit
(I36a3b).
Poprawki błędów
- Naprawiono błąd powodujący awarię w
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.
Element 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 przeznaczonymi do przyszłych wersji 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 poziom API 4 biblioteki Car App Library (I2a2e7).
- Poziom API 4: dodano obsługę ustawienia
CarIcon
wPane
(Ifcc12). - Poziom interfejsu API 4: dodano metodę logowania za pomocą kodu QR (Ib623e).
- Poziom API 4: dodano do
Action
metody set/getFlags (Ic03ab). - Poziom API 4: dodano obsługę przesuwania i powiększania w funkcjach
PlaceListNavigationTemplate
iRoutePreviewNavigationTemplate
(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
Element 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:
SignInTemplate
iLongMessageTemplate
, 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, aby umożliwić 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.
Element 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
Element androidx.car.app:app-*:1.1.0-beta01
został zwolniony. Wersja 1.1.0-beta01 zawiera te commity.
Wszystkie funkcje v1.1.0
(interfejs 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 jawnie argumentTestCarContext
(Iefebc).
Poprawki błędów
- Dodano sprawdzanie poziomu interfejsu API podczas tworzenia
CarHardwareManager
(I48f9b) - Dodano sprawdzanie nieprawidłowego użycia interfejsu API
CarSpan
(I65ae6). - Rozwiązanie problemu polegającego na tym, że jeśli podczas tworzenia
Screen
zostanie oznaczony jako zakończony, pozostawał w nieprawidłowym stanie (I81b13). - Naprawiono problem, który powodował, że
CarNotificationManager.notify
rejestrował błąd AutomotiveOS, jeśli wCarAppExtender
były działania z ikonami (I3633d). - Dodano metodę uzgadniania wersji interfejsu API dla aplikacji i hosta (I7d6f8)
Wersja 1.1.0-alpha02
21 lipca 2021 r.
Element androidx.car.app:app-*:1.1.0-alpha02
został zwolniony. Wersja 1.1.0-alpha02 zawiera te commity.
Nowe funkcje
- Poziom 3 interfejsu API: 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 Androidzie Auto w wersji 6.7 i nowszej w ramach otwartego kanału testów. Testowanie tej funkcji w środowisku komputera wymaga nowej wersji aplikacjiDesktop 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, które pomogą Ci korzystać z tych funkcji w urządzeniach samochodowych zgodnych z interfejsem API w poziomie 3, postępuj zgodnie z przewodnikiem dla programistów i informacjami o bibliotece.
Zmiany w interfejsie API
- Połączenie metod cyklu życia
SessionController
iScreenController
w jedną metodęmoveToState
(I1ed00) - Dodano
CarContext#getHostInfo()
(I8977e) - Usunięto wycofane pola. (I67168)
- Zaktualizowano klasy
SessionController
iScreenController
, aby bezpośrednio udostępniać konstruktory (Iabf22). - Usunięto
PinSignInMethod.Builder
iProviderSignInMethod.Builder
(I9f0cb). - Dodano funkcję „setCarAppResult()”, aby umożliwić korzystanie z aplikacji z użyciem szablonów „for result” w AAOS (I37741).
- Oznaczyłeś interfejsy
CarHardware
w dokumentacji@MainThread
. (Ib2f85) - Nazwa
OnCarDataListener
została zmieniona naOnCarDataAvailableListener
(I518ca) - Zaktualizowano nazwy metod
CarInfo
,Speed
iMileage
oraz dokumentację javadoc. (I86672) - Nazwa
Toll
została zmieniona naTollCard
. (I3e7c8) - Usunięto wycofane pole
PinSignInMethod.getPin
, które zostało zastąpione przez polePinSignInMethod.getPinCode
(I996ce) - Usunięto
OnInputCompletedListener
(zastąpiono je elementemInputCallback
). (Ib5be1) - Zmieniono regułę
PinSignInMethod
tak, aby przyjmowała wartośćCharSequence
zamiastString
(I275d5).
Poprawki błędów
- poprawki Javadoc dla sprzętu samochodowego; (I2abbc)
Darowizna zewnętrzna
Znane problemy
- W
SignInTemplate
korzystanie zInputSignInMethod
może spowodowaćNullPointerException
w samochodzie. 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-alpha01
i androidx.car.app:app-testing:1.1.0-alpha01
są dostępne. Wersja 1.1.0-alpha01 zawiera te commity.
Nowe funkcje
- Poziom 2 interfejsu API: nowe parametry
SignInTemplate
iLongMessageTemplate
, które można używać do logowania się, gdy pojazd jest zaparkowany. - Poziom interfejsu API 2: nowa obsługa 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 hosta w samochodzie zgodnych z interfejsem API w wersji 2, postępuj zgodnie 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 zOnRequestPermissionsCallback
naOnRequestPermissionsListener
(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
wMessageTemplate
(Ida657) - Dodano
setLoading
doMessageTemplate
. (I2a4b5) - Nazwa „
ConnectionToCar
” została zmieniona na „CarConnection
” (Ife9bd) - Zmieniono funkcję
NavigationTemplate
, aby zwracała jawną wartośćPanModeDelegate
(I13877). - Zaktualizowano kolejność parametrów w przypadku zdarzenia
CarContext.requestPermissions
(Ib890a) - Zaktualizowano klucz metadanych, aby zdefiniować minimalny poziom interfejsu API samochodu jako
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 przesuwaniaAction
(Ica6af). - Utworzono
CarNotificationManager
, aby obsługiwać wysyłanie powiadomień w samochodzie (I10d7a). - Dodano
ConstraintManager
do określania limitów list przez 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 wersji 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 wiadomości
SignInTemplate
iLongMessageTemplate
wymagane są działania tylko w przypadku zaparkowanego samochodu. Zaktualizowano dokumentację, aby wskazać, że te działania są wyświetlane tylko wtedy, gdy samochód jest zaparkowany (Iddaa9). - Usunięto wyjątek, który występuje podczas
Screen
podczas uruchamiania (Ifcf40, b/184664896) - Dozwolony niestandardowy kolor tekstu w
ForegroundCarColorSpan
(I69e59) - Rozwiązano problem polegający na tym, że po
ON_DESTROY
Session
wSession
jest obserwowany błądON_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) - Naprawiliśmy błąd, który wymagał od aplikacji jawnej zależności od biblioteki lifecycle-common-java8 (I8b8c8).
Znane problemy
- W
SignInTemplate
, gdy użytkownik chce potwierdzić dane, klawiatura ekranowa wyświetla ikonę „wyszukiwania” 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.
Element 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 źródle zamkniętym. 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 funkcja
CarAppServiceController
została zastąpiona nową funkcjąSessionController
, która służy do testowania logiki związanej z czasem trwania połączenia z hots.
Wersja 1.0.0
Wersja 1.0.0
21 kwietnia 2021 r.
Element 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ą zacząć publikować na kanale produkcyjnym 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
- Rozwiązaliśmy problem z wyjątkiem, który występuje podczas wywoływania
Screen
na początku (70aae1, b/184664896). - Rozwiązanie problemu polegającego na tym, że po
ON_DESTROY
Session
występujeON_DESTROY
(0ceecb, b/183696617)Screen
Wersja 1.0.0-rc01
24 marca 2021 r.
Element 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). - Naprawiliśmy błąd, który wymagał od aplikacji jawnej zależności od
lifecycle-common-java8
(I8b8c8). - Usunięto błąd
NullPointerException
, który występował, gdy aplikacja otrzymywała wywołaniestopNavigation
, a callback był już usunięty (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łowy interfejs API określony w pliku manifestu aplikacji powodował błąd ANR w hoście. (Iffedd, b/174231592)
Wersja 1.0.0-beta01
24 lutego 2021 r.
Element 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 zgodna z Androidem Auto w wersji 6.1 lub nowszej. Więcej informacji o tworzeniu aplikacji samochodowych za pomocą biblioteki znajdziesz w przewodniku dla programistów.
Nowe funkcje
- Wprowadziliśmy
GridTemplate
, którego Twoja aplikacja może używać do wyświetlania listy elementów UI w układzie siatki. - Wprowadziliśmy metodę
CarAppService.createHostValidator
, która umożliwia sprawdzenie, czy połączenie hosta pochodzi z zaufanego źródła (np. Androida Auto). - Dodano interfejs API
CarAppExtender.Builder.setColor
. (b/174231592)
Poprawki błędów
- Rozwiązaliśmy problem polegający na tym, że po wyświetleniu kolejnych ekranów niewłaściwie
Screen
było wznawiane. (b/177590791)