Автомобильное приложение

Создавайте шаблонные приложения для Android Auto и Android Automotive OS.
Последнее обновление Стабильный релиз Кандидат на релиз Бета-версия Альфа-релиз
19 ноября 2025 г. 1.7.0 - - 1.8.0-альфа03

Объявление зависимостей

Чтобы добавить зависимость от Car App Library, необходимо добавить репозиторий Google Maven в свой проект. Подробнее см. в репозитории Google Maven .

Добавьте зависимости для необходимых артефактов в файл build.gradle вашего приложения или модуля:

классный

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

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

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

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

Котлин

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

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

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

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

Дополнительные сведения о зависимостях см. в разделе Добавление зависимостей сборки .

Обратная связь

Ваши отзывы помогают улучшить Jetpack. Сообщите нам, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с уже существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете проголосовать за существующую проблему, нажав на кнопку со звёздочкой.

Создать новый выпуск

Более подробную информацию см. в документации по системе отслеживания проблем .

Версия 1.8

Версия 1.8.0-альфа03

19 ноября 2025 г.

Выпущена версия androidx.car.app:app-*:1.8.0-alpha03 . Версия 1.8.0-alpha03 содержит следующие изменения .

Новые функции

  • Добавлено изображение в строки, что позволяет использовать новые варианты списков.
  • Добавьте SectionedItemTemplate#alphabeticalIndexingStrategy , чтобы разрешить различную алфавитную индексацию для ускорителей списков.

Изменения API

  • Добавлен endImageType для endImages в строках ( I8865b ).
  • Добавьте SectionedItemTemplate#alphabeticalIndexingStrategy . Это замена #isAlphabeticalIndexingAllowed , которая предоставляет разработчикам больше возможностей для индексации по алфавиту. ( Ia164d , b/410092683 )
  • Добавить поддержку конечного изображения в строку автомобильного приложения. ( If93f0 )
  • Добавлен CarIcon MediaPlayback для упрощения использования стандартного действия MediaPlayback . ( Ib6cb7 )

Исправления ошибок

Версия 1.8.0-альфа02

18 июня 2025 г.

Выпущен androidx.car.app:app-*:1.8.0-alpha02 . Версия 1.8.0-alpha02 содержит следующие коммиты .

Новые функции

  • Добавлена ​​поддержка Action.MEDIA_PLAYBACK , которая отображает индикатор на основе состояния воспроизведения мультимедиа.
  • Добавлена ​​поддержка управления позицией прокрутки пользователя при обновлении SectionedItemTemplate .

Изменения API

  • Добавить поддержку сохранения позиции прокрутки пользователя в SectionedItemTemplate между обновлениями. ( Ia4c51 )
  • Обновлено действие MEDIA_PLAYBACK для включения его в действие конца строки ( I05cc4 ).
  • Добавить новый тип действия ( I6cc5a )
  • Добавьте CarAppExtender#addAction(Action) , чтобы в CarAppExtender можно было добавить любой тип действия. ( Idc4d7 )
  • SectionedItemTemplate теперь доступен для API 8 и выше. ( I9a079 )

Версия 1.8.0-альфа01

20 мая 2025 г.

Выпущен androidx.car.app:app-*:1.8.0-alpha01 . Версия 1.8.0-alpha01 содержит следующие изменения .

Новые функции

Все функции временно доступны только на Android Auto. Те же API будут использоваться в AAOS.

  • Добавлена ​​категория «Медиа» для создания собственных приложений в качестве альтернативы приложениям на основе MediaBrowse
  • Добавлен шаблон воспроизведения, позволяющий управлять основными действиями в режиме воспроизведения медиа (доступно только для приложений мультимедиа).
  • Добавлена ​​полная поддержка шаблона секционированных элементов в Android Auto, который позволяет комбинировать подразделы, состоящие из списков/сеток.
  • Добавлен «Очень большой» как дополнительный размер для элементов сетки.

Изменения API

  • Добавить дополнительный параметр размера для элементов сетки ( I35b58 )
  • Добавляет категорию и разрешение для медиаприложений в библиотеку автомобильных приложений ( I8e100 )
  • Добавлен новый API для приложений, позволяющий определять, поддерживается ли категория медиа CarAppLibrary ( Ic4b08 ).
  • Добавлен OnItemVisibilityChangeListener в раздел. ( I2c2fd )
  • Добавлен Mileage#getOdometerKilometers и прекращена поддержка Mileage#getOdometerMeters ( Ic91af ).

Исправления ошибок

  • Исправлена ​​опечатка в Javadoc CarIcon.setTint ( Iabd72 )
  • Обновлена ​​документация Row.Builder#setNumericDecoration с целью объяснить, что 1 действие + числовое оформление не поддерживаются; однако 0 или 2 действия + числовое оформление поддерживаются. ( Ic0b08 )
  • Добавлено поле для цвета фона значка для элементов сетки. ( I2b6ae )

Версия 1.7

Версия 1.7.0

16 июля 2025 г.

Выпущен androidx.car.app:app-*:1.7.0 . Версия 1.7.0 содержит следующие изменения .

  • Это первый стабильный релиз, включающий исправление CVE-2024-10382, выпущенное в версии beta03. Если вы используете версию ниже 1.7-beta03, обновите её, чтобы использовать эту версию.

Версия 1.7.0-rc01

15 января 2025 г.

androidx.car.app:app-*:1.7.0-rc01 выпущен без каких-либо заметных изменений по сравнению с beta03. Версия 1.7.0-rc01 содержит следующие коммиты .

  • Это первый релиз-кандидат, включающий исправление CVE-2024-10382, выпущенное в версии beta03. Если вы используете версию ниже 1.7-beta03, обновите её, чтобы использовать эту версию.

Версия 1.7.0-beta03

13 ноября 2024 г.

Исправлена ​​уязвимость системы безопасности и другие общие ошибки. Если вы используете более раннюю версию, обновите её, чтобы использовать эту .

Выпущена версия androidx.car.app:app-*:1.7.0-beta03 . Версия 1.7.0-beta03 содержит следующие изменения .

Изменения API

  • Обновить код сериализации/десериализации CAL для обработки только тех объектов, для которых объявлена ​​аннотация @CarProtocol . ( Ic730e )
  • CarAppExtender теперь можно использовать для расширения фреймворка Notification.Builder вместо только NotificationCompat.Builder . ( Id3ad7 )
  • Добавить дополнительный KEY_EXCLUDE_MEDIA_ITEM_FROM_MIXED_APP_LIST . ( I201f9 )
  • Отменить использование пустого конструктора Builder в ConversationItem и заменить его конструктором, принимающим обязательные параметры. Также добавлена ​​проверка для защиты от нулевых сообщений. ( Ic8221 )

Исправления ошибок

  • Убедитесь, что карта PlaceList использует строковый (только текстовый) заголовок. ( Ic992f )
  • Эта библиотека теперь использует аннотации JSpecify, определяющие значение null , которые являются типовыми. Разработчикам Kotlin следует использовать следующий аргумент компилятора для обеспечения корректного использования: -Xjspecify-annotations=strict (это значение по умолчанию, начиная с версии 2.1.0 компилятора Kotlin). ( Ib5367 , b/326456246 )

Версия 1.7.0-beta02

18 сентября 2024 г.

Выпущен androidx.car.app:app-*:1.7.0-beta02 . Версия 1.7.0-beta02 содержит следующие изменения .

Изменения API

  • Добавить дополнительный KEY_ROOT_HINT_MEDIA_HOST_VERSION ( I8796b )
  • Заменить класс TabContents.Api8Builder на конструктор @ExperimentalCarApi в классе TabContents.Builder ( I26fbe )
  • Добавить действие намерения и дополнительные возможности для CarMediaApp ( I50782 )
  • Отметить API обмена сообщениями как неэкспериментальные ( I0b070 )
  • Добавить удаленную загрузку элементов в SectionedItemTemplate (позволяет загружать длинные списки без сбоев) ( I0d122 )
  • Добавить SectionedItemTemplate в список поддерживаемых шаблонов внутри TabTemplate в API 8. ( Idc5d6 )

Исправления ошибок

  • Удалено ручное описание доступа к новым API платформы, поскольку это происходит автоматически посредством моделирования API при использовании R8 с AGP 7.3 или более поздней версии (например, R8 версии 3.3) и для всех сборок с использованием AGP 8.1 или более поздней версии (например, D8 версии 8.1). Клиентам, не использующим AGP, рекомендуется обновиться до D8 версии 8.1 или более поздней. Подробнее см. в этой статье ( I9496c , b/345472586 ).

Версия 1.7.0-beta01

26 июня 2024 г.

Выпущена версия androidx.car.app:app-*:1.7.0-beta01 . Версия 1.7.0-beta01 содержит следующие изменения . Функции те же, что и в alpha01, и они повторены ниже:

Новые функции

  • Карта с содержимым: новый шаблон «Карта-холст» плюс шаблон содержимого, который на данный момент может быть списком / сеткой / панелью / сообщением.
    • RoutePreview , PlaceListNavigation и MapTemplate устарели. Шаблоны продолжат работать как есть.
    • Примеры приложений были обновлены для отображения использования MapWithContent вместо устаревших шаблонов.
  • Элемент разговора: новые API для отображения разговоров (IM, SMS) и сообщений помощника в автомобиле.
  • Габариты транспортного средства: новый API для получения размеров транспортного средства (данные на данный момент находятся на AAOS).

Изменения API

  • Добавьте тег @ExperimentalCarApi в MediaPlaybackTemplate.Builder . ( Ic1957 )
  • Добавляет новый SectionedItemTemplate в экспериментальную версию. ( I5958a )
  • Представляем CarAppApiLevel 8 ( I3fa22 )
  • Добавляет MediaPlaybackTemplate для отображения контента во время воспроизведения мультимедиа в библиотеке автомобильных приложений. ( I3c10d )
  • Добавлен новый API для приложений, позволяющий определить, поддерживает ли система фоновый звук во время вождения ( I0f868 ).

Исправления ошибок

  • Исправлены некоторые случаи утечек памяти и сбоев в клиентском коде CAL и в примере приложения CAL Navigation. ( I55e04 )
  • Замените requireNotNull instances в методе onDestroy BaseCarAppActivity на проверки if-null, чтобы избежать сбоев. ( Iec676 )

Версия 1.7.0-альфа02

17 апреля 2024 г.

Выпущен androidx.car.app:app-*:1.7.0-alpha02 . Версия 1.7.0-alpha02 содержит следующие изменения .

Новые функции

  • Добавлены устаревшие флаги для шаблонов на основе карт, которые в дальнейшем будут поддерживаться шаблоном MapWithContent .

Изменения API

  • Отменить поддержку старых MapTemplate , RoutePreviewNavigationTemplate , PlaceListNavigationTemplate и рекомендовать использование нового MapWithContentTemplate ( Ib0a08 ).

Версия 1.7.0-альфа01

3 апреля 2024 г.

Выпущена версия androidx.car.app:app-*:1.7.0-alpha01 . Мы изменили схему нумерации версий библиотеки в соответствии с текущей версией CarApi. Это сделано для того, чтобы избежать путаницы в системе наименований, основанной на отзывах разработчиков. В связи с этим мы пропустим версии 1.5 и 1.6 и сразу перейдём к версии 1.7. Версия 1.7.0-alpha01 содержит эти коммиты .

Новые функции

  • Карта с содержимым : новый шаблон MapWithContent , который поддерживает список / сетку / панель / сообщение в качестве содержимого внутри карты.
    • Шаблоны RoutePreview , PlaceListNavigation и Map теперь устарели.
    • Примеры приложений были обновлены для демонстрации функциональности устаревших шаблонов с использованием MapWithContent .
  • Элемент разговора : новые API для отображения разговоров (IM, SMS) и показаний помощника в автомобиле.
  • Габариты транспортного средства : новый API для получения размеров транспортного средства (данные на данный момент находятся на AAOS).

Изменения API

  • Отметить тип изображения с очень маленькой строкой как экспериментальный ( I5184b )
  • Добавлен API CarInfo#fetchExteriorDimensions , который позволяет получить доступ к информации о внешних размерах автомобиля, такой как высота, ширина и т. д. ( Ia40c5 ).
  • Удален тег ExperimentalAPI из MapWithContentTemplate ( I66db8 )
  • Обновите параметр GridItem#setTitle так, чтобы он допускал значение NULL. ( I3d610 )
  • API GetHeader не требует API 7, поскольку он обратно совместим ( I8c812 ).
  • Добавить поддержку Header в ListTemplate , прекратить поддержку headerAction , headerTitle , actionStrip ( I7ae01 )
  • Отменить поддержку title , headerAction , actionStrip в GridTemplate и добавить поддержку Header ( I41a9c )
  • Удалить требование уровня 7 для экспериментальных API: Badge, методы получения/установки размера элемента GridTemplate и формы изображения, методы GridItem для получения/установки Badge. ( Id71eb )
  • Отменить поддержку title , headerAction и actionStrip в PaneTemplate , добавить поддержку нового Header ( I23154 )
  • Изменена телеметрия Media Center с BroadcastReceiver на Browse Custom Action. ( I4185f )
  • Добавлена ​​поддержка атрибута Header в MessageTemplate . Поддержка ActionStrip , headerAction и title прекращена. ( Ie2de8 )
  • Изменить видимость константы оповещения ( Icf8a8 )
  • Удалить атрибут isLoading из родительского шаблона ( I651e6 )
  • Добавить дополнительные данные для информирования медиа-приложений об основных параметрах пользовательского интерфейса ( I85ca2 )
  • Добавить функцию аналитики медиацентра в MediaExtensions ( I7ce28 )
  • Добавлена ​​опция для очень маленьких изображений в строках. ( I72c03 )

Исправления ошибок

  • Обновите документацию Javadoc по ConversationItem , указав, что сообщения следует сортировать в порядке от самых старых к самым новым. ( I77a2a )
  • Обновите логику усечения ListTemplate , чтобы удалить самые старые сообщения из ConversationItem ( Ie0a61 ).

Версия 1.4

Версия 1.4.0

29 мая 2024 г.

Выпущена версия androidx.car.app:app-*:1.4.0 . Версия 1.4.0 является усовершенствованием версии 1.4.0-rc02.

Важные изменения с версии 1.3.0

  • Рендеринг карты приборной панели для навигационных приложений
  • Новый шаблон вкладки для улучшенного макета приложения и удобства использования
  • Поддержка адаптивных ограничений задач
  • Вторичные действия над элементами списка

Версия 1.4.0-rc02

13 декабря 2023 г.

Выпущена версия androidx.car.app:app-*:1.4.0-rc02 . Версия 1.4.0-rc02 содержит следующие исправления. Только незначительные исправления.

Исправления ошибок

  • Обновите документацию Javadoc по ConversationItem указав, что сообщения следует сортировать в порядке от самых старых к самым новым ( I77a2a ).
  • Обновите логику усечения ListTemplate , чтобы удалить самые старые сообщения из ConversationItem ( Ie0a61 ).

Версия 1.4.0-rc01

1 ноября 2023 г.

androidx.car.app:app-*:1.4.0-rc01 выпущен без заметных изменений. Версия 1.4.0-rc01 содержит следующие коммиты.

Версия 1.4.0-beta02

20 сентября 2023 г.

Выпущен androidx.car.app:app-*:1.4.0-beta02 . Версия 1.4.0-beta02 содержит следующие коммиты. Она практически идентична beta01, но снижает требования compileSdk до 33.

Исправления ошибок

  • Исправлена ​​ошибка, из-за которой загрузочные экраны на вкладках отображались некорректно. ( cae860 )

Версия 1.4.0-beta01

9 августа 2023 г.

Выпущен androidx.car.app:app-*:1.4.0-beta01 . Версия 1.4.0-beta01 содержит следующие изменения.

Примечание: для версии 1.4-beta01 требуется compileSdk34, который всё ещё находится в стадии разработки. В версии 1.4-beta02 эта проблема будет исправлена. Кроме того, вы можете добавить android.suppressUnsupportedCompileSdk=34 в файл settings.gradle вашего проекта, чтобы временно отключить предупреждение.

Новые функции

Изменения API

  • См. альфа02

Версия 1.4.0-альфа02

26 июля 2023 г.

Выпущен androidx.car.app:app-*:1.4.0-alpha02 . Версия 1.4.0-alpha02 содержит следующие изменения.

  • Выпуск Alpha02 призван стать подготовкой к предстоящему выпуску beta01.

Новые функции

  • Поддержка отображения карты на панели инструментов для навигационных приложений
  • Добавлены вкладки для приложений для улучшения компоновки.
  • Добавлены параметры визуализации шаблона списка/сетки
  • Добавлены новые категории для «Погода» и «Коммуникации».
  • Перенести несколько API в следующую версию CarApi 7

Изменения API

  • Добавить поля мультимедиа в CarMessage ( I5aaf6 )
  • Добавляет пользовательские действия в ConversationItem в библиотеке автомобильных приложений ( Ie5ed6 )
  • Добавьте дополнительные элементы, указывающие на то, что медиафайл воспроизводится в формате иммерсивного звука, и покажите логотип формата контента ( Icb5bb ).
  • Добавить новый тип действия, API ActionsConstraints для поддержки кнопки «Создать сообщение». ( I31661 )
  • Сделано set/getTemplate как set/get ContentTemplate ( Ica036 )
  • Параметр шаблона теперь будет @NonNull . Обновлена ​​документация API MapWithContentTemplate ( I0f8ed ).
  • Удаляет тег @ExperimentalCarApi для действий в ListTemplate для запуска в CAL 1.4 ( I2cfcb )
  • Удаляет тег @ExperimentalCarApi для TabTemplate ( Ifcb82 )
  • Удалить аннотации @ExperimentalCarApi из вторичных действий и декораций строки ( I8487e )
  • Добавляет идентификатор содержимого активной вкладки в TabTemplate и отменяет поддержку активного состояния вкладок ( I96932 )
  • Добавить свойство ItemImageShape в GridTemplate ( Ibf431 )
  • Добавьте свойство ItemSize в GridTemplate , которое управляет размером элементов сетки в соответствии с относительным малым, средним и большим количеством контейнеров. ( Icdb3b )
  • Откройте разработчикам доступ к API для получения копии текущего стека экранов. ( I48107 )
  • Добавляет категорию для погодных приложений в библиотеку автомобильных приложений ( I2be44 )
  • Добавляет категорию для вызова приложений в библиотеку автомобильных приложений ( Icab33 )
  • Заменены методы GridItem.Builder#setBadge() на перегруженные setImage() ( Id2000 )
  • Добавить свойство значка к значку ( I629b2 )
  • Добавить метод для установки цвета фона значка точки ( I6411c )
  • Добавьте свойство Badge к GridItem , что позволит отображать значок поверх изображения GridItem . ( I95de7 )
  • Добавлен экспериментальный объект Badge, который будет представлять собой значок, отображаемый поверх изображения. ( I9878d )

Версия 1.4.0-альфа01

22 февраля 2023 г.

Выпущен androidx.car.app:app-*:1.4.0-alpha01 . Версия 1.4.0-alpha01 содержит следующие изменения.

Изменения API

  • Добавляет действия верхнего уровня в GridTemplate в библиотеке автомобильных приложений ( Id0191 )
  • Добавляет действия верхнего уровня в ListTemplate в библиотеке автомобильных приложений ( I9efab )
  • Добавьте дополнительные элементы для связи подзаголовка или описания медиа-элемента с другими медиа-элементами ( Ic84bf )
  • Обновить уровень API для действий со строками до уровня 6. ( Ie0a69 )
  • Добавить обратные вызовы сообщений в A4C ( Ie3986 )

Исправления ошибок

  • Добавить отсутствующие ссылки на документацию Java для CarMessage . ( I5db1c )
  • Переопределить equals() и hashCode() для ConversationItem и CarMessage ( I6fd10 )
  • Улучшена проверка ConversationItem.mMessages (требуется ненулевое и непустое значение ( Iafc51 )
  • Добавить аннотации @Keep к полям ConversationItem ( I5d250 )
  • Обновление документации Java для оформления строк и дополнительных действий. ( I000b6 )

Версия 1.3

Версия 1.3.0-rc01

7 декабря 2022 г.

Выпущен androidx.car.app:app-*:1.3.0-rc01 . Версия 1.3.0-rc01 содержит следующие изменения.

  • Исправлены незначительные ошибки версии beta01. Серьёзных изменений нет.

Версия 1.3.0-beta01

7 сентября 2022 г.

Выпущены 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 и androidx.car.app:app-testing:1.3.0-beta01 . Версия 1.3.0-beta01 содержит эти изменения.

Новые функции

В дополнение к возможностям, добавленным в Car App Library 1.3.0-alpha01, в версию beta01 были добавлены следующие функции (все функции здесь связаны только с изменениями на стороне хоста без каких-либо изменений API):

  • Плавающая навигационная панель будет отображаться даже тогда, когда пользователь находится на экране выбора карты в PlaceListNavigationTemplate , RoutePreviewNavigationTemplate и MapTemplate . Это можно сделать, обновив навигационную информацию с помощью NavigationManager.updateTrip() .
  • Включите кнопку действия с флагом FLAG_DEFAULT , чтобы анимация выполнялась по истечении времени ожидания. Эта кнопка будет нажата по умолчанию по истечении времени ожидания. ( [API 5 - All Templates] )
  • Подтекст Row не обрезается, когда автомобиль припаркован, но обрезается до 2 строк во время движения. ( [API 5 - All Templates] )
  • Поддержка отключенного состояния для Action , Toggle , Row ( [API 5 - All Templates] )

Изменения API

  • Ослабьте ограничения в списке MapTemplate для поддержки выбираемых списков ( 1961 )
  • Устранить ограничение на действия заголовка, чтобы разрешить использование пользовательских значков. ( Iad28f )
  • Добавьте ограничение setOnClickListenerAllowed() в ActionsConstraints , которое позволит Action устанавливать OnClickDelegate() для действий, за исключением стандартных типов значков ( TYPE_APP_ICON , TYPE_BACK и TYPE_PAN ) ( I3c745 ).

Исправления ошибок

Версия 1.3.0-альфа01

27 июля 2022 г.

Выпущены 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 и androidx.car.app:app-testing:1.3.0-alpha01 . Версия 1.3.0-alpha01 содержит эти коммиты.

Функции, отмеченные как API уровня 5, совместимы с Android Auto 7.9 и выше.

Новые функции

  • API уровня 5: новый MapTemplate , который может использоваться навигационными приложениями для отображения содержимого панели или списка рядом с картой ( If5826 , If44b8 )
  • API уровня 5: новый API CarAudioRecord , позволяющий записывать аудиосигнал через микрофон основного транспортного средства ( I5e71a )
  • API уровня 5: новый API SuggestionManager , позволяющий приложениям предоставлять предложения хосту ( I5c103 )
  • API уровня 5: новый API Alert для отображения в контекстных уведомлениях в NavigationTemplate ( I163a7 , I5ad70 )
  • API уровня 5: новые компоненты Header и MapController для упрощения повторного использования в разных шаблонах ( If5826 )
  • Добавлена ​​категория androidx.car.app.category.POI для включения приложений POI (и отменены категории androidx.car.app.category.PARKING и androidx.car.app.category.CHARGING ) ( I59da1 )

Изменения API

  • API уровня 5: новый метод onClick в интерфейсе SurfaceCallback , позволяющий интерактивно реагировать на касание карты ( Ia9777 ).
  • API уровня 5: новые флаги Action.FLAG_IS_PERSISTENT и Action.FLAG_DEFAULT для описания Action ( I96318 , I5ad70 )
  • API уровня 5: новое состояние «включено/выключено» для компонентов Action , Row и Toggle (поддержка хоста появится примерно в версии библиотеки 1.3.0-beta01) ( Id8a09 )
  • API уровня 5: отдайте предпочтение новому компоненту Header через setHeader в PlaceListNavigationTemplate.Builder и RoutePreviewNavigationTemplate.Builder , отменив существующие методы setTitle и setHeaderAction ( I30e6a ).
  • API уровня 5: новый метод setOnContentRefreshListner в PlaceListMapTemplate.Builder и PlaceListNavigationTemplate.Builder для использования с реализациями нового интерфейса OnContentRefreshListner .
  • API уровня 5: новые setTripText и setTripIcon в TravelEstimate.Builder для настройки карточки оценки поездки ( Idcc6d , Ic620d )
  • Добавить поддержку CarIconSpan в заголовок PaneTemplate ( Ia1ee0 )
  • Добавить поддержку заголовков и текста CarIconSpan в Row ( Ic1e3c )
  • Map ActionStrip теперь может иметь до четырех действий ( If3522 )
  • Обновить уровень API автомобильного приложения до 5 ( I26b8e )
  • Заголовки/названия теперь необязательны для PlaceListMapTemplate , PlaceListNavigationTemplate , RoutePreviewNavigationTemplate , GridTemplate , ListTemplate , LongMessageTemplate , MessageTemplate , PaneTemplate и SignInTemplate ( I2078d , Icadde ).

Исправления ошибок

  • Обновлены правила изменения размера изображения PaneTemplate , чтобы оно представляло собой квадратную ограничивающую рамку ( Idd72e ).
  • Исправлено исключение, возникающее при изменении стека экрана после State.DESTROYED . ( I3c8eb )
  • Добавлена ​​проверка на null для получения значка приложения ( I3f710 ).
  • Обновление API автомобильного оборудования для использования STATUS_UNKNOWN вместо STATUS_UNAVAILABLE по умолчанию ( Ic9444 ).
  • Проверьте, существует ли отображение, прежде чем создавать поверхность ( Ice027a )
  • Исправлена ​​ошибка CarValue.equals() связанная со STATUS_UNIMPLEMENTED ( I24451 ).

Версия 1.2

Версия 1.2.0

9 ноября 2022 г.

Выпущен androidx.car.app:app-*:1.2.0 . Версия 1.2.0 содержит следующие изменения.

  • Это стабилизационный релиз, в нем нет никаких изменений по сравнению с версией 1.2.0-rc01.

Версия 1.2.0-rc01

23 марта 2022 г.

Выпущен androidx.car.app:app-*:1.2.0-rc01 . Версия 1.2.0-rc01 содержит следующие изменения.

  • Это стабилизирующий релиз, API не изменился по сравнению с v1.2.0-beta02 . Добавлены новые экспериментальные функции (API уровня 5), предназначенные для будущих релизов Android Auto и Android Automotive.

Исправления ошибок

  • Исправлено исключение, возникающее при изменении стека экрана после State.DESTROYED . ( I3c8eb )
  • Обновлен API CarSensors для указания того, что он не реализован для AAOS ( Idd57b ).
  • Обновлен PlaceListMapTempalte.Builder#setCurrentLocationEnabled для указания того, что ACCESS_COARSE_LOCATION будет достаточным для этой функции ( I510c2 ).
  • Номер съезда сделан необязательным для маневров с круговым движением ( Ife7d1 )

Версия 1.2.0-beta02

26 января 2022 г.

Выпущен androidx.car.app:app-*:1.2.0-beta02 . Версия 1.2.0-beta02 содержит следующие изменения.

Автомобильные приложения, созданные с использованием этой версии библиотеки для платформы Android Automotive OS теперь можно публиковать в открытом тестовом канале Play Store. Подробнее см. в руководстве по разработке .

Функции, отмеченные как API уровня 4 и ниже, совместимы как с Android Auto 7.2+, так и с новой платформой Android Automotive OS . Предупреждения см. в разделе Known Issues ниже.

Изменения API

  • Добавлен экспериментальный API setOnContentRefreshListener для шаблонов POI ( I6bf22 ).

Исправления ошибок

  • Исправлена ​​утечка памяти в CarAppService при отвязке хоста автомобиля. ( I5c9ca , b/203594731 )
  • Обновлена ​​документация Javadoc CarAppActivity , в нее включены требования для режима запуска singleTask ( Id2f95 ).
  • Уменьшает визуальные сбои при возобновлении работы. ( Iff7e0 )

Известные проблемы

  • Карты ActionStrip в PlaceListNavigationTemplate и RoutePreviewNavigateTemplate начнут становиться доступными в следующих выпусках Android Auto и Android Automotive OS .

Версия 1.2.0-альфа02

15 декабря 2021 г.

Выпущен androidx.car.app:app-*:1.2.0-alpha02 . Версия 1.2.0-alpha02 содержит следующие изменения.

Функции, отмеченные API уровня 4, были обновлены с экспериментальных до стабильных, включая ActionStrip карты в PlaceListNavigationTemplate и RoutePreviewNavigateTemplate , изображение CarIcon в Pane , QRCodeSignInMethod и возможность задавать подсказки рендеринга (например, флаги) в Action .

Новые функции

  • В Android Auto 7.1+ лимит элементов для Pane увеличен с 2 до 4.

Изменения API

  • Добавлен экспериментальный метод toString() в CarUnit ( I36a3b ).

Исправления ошибок

  • Исправлен сбой, возникавший в CarAppPermissionActivity , если обратный вызов не выполнялся ( If9823 ).
  • Изменен лимит списка Pane по умолчанию до 4 ( I0068b )

Версия 1.2.0-альфа01

3 ноября 2021 г.

Выпущен androidx.car.app:app-*:1.2.0-alpha01 . Версия 1.2.0-alpha01 содержит следующие изменения.

Все новые функции v1.2.0 (API 4+) в настоящее время являются экспериментальными и предназначены для будущих версий Android Auto и Android Automotive OS. Подробнее см. в руководстве по разработке .

Изменения API

  • API AutomotiveCarInfo сделан экспериментальным. ( Ia13e5 )
  • Добавлен API библиотеки автомобильных приложений уровня 4 ( I2a2e7 )
  • API уровня 4: добавлена ​​поддержка настройки CarIcon на Pane ( Ifcc12 ).
  • API уровня 4: добавлен метод входа с помощью QR-кода ( Ib623e )
  • API уровня 4: добавлены set/getFlags в Action ( Ic03ab )
  • API уровня 4: добавлена ​​поддержка панорамирования и масштабирования в PlaceListNavigationTemplate и RoutePreviewNavigationTemplate ( I9d8a3 )

Исправления ошибок

  • API уровня 4: добавить механизм, позволяющий приложениям отправлять обновления местоположения на хост автомобиля ( I3bad3 )
  • Исправлена ​​ошибка, из-за которой логика проверки хоста не могла корректно найти разрешение TEMPLATE_RENDERER ( I62618 ).

Версия 1.1.0

Версия 1.1.0

15 декабря 2021 г.

Выпущен androidx.car.app:app-*:1.1.0 . Версия 1.1.0 содержит следующие изменения.

Это релиз для стабилизации, и по сравнению с v1.1.0-rc01 изменений нет. Также см. примечания к выпуску v1.2.0-alpha02 для получения более подробной информации о новых функциях библиотеки автомобильных приложений.

Важные изменения с версии 1.0.0

  • API уровня 2: SignInTemplate и LongMessageTemplate , которые можно использовать для потоков входа, когда транспортное средство припарковано.
  • API уровня 2: поддержка интерактивности карты в NavigationTemplate
  • API уровня 2: поддержка текста различной длины, позволяющая приложениям предоставлять несколько версий строки для отображения в зависимости от размеров экрана автомобиля.
  • API уровня 3: CarHardwareManager , который можно использовать для запроса данных об оборудовании транспортного средства, таких как модель и марка, уровень топлива и другие датчики.

Версия 1.1.0-rc01

3 ноября 2021 г.

Выпущен androidx.car.app:app-*:1.1.0-rc01 . Версия 1.1.0-rc01 содержит следующие изменения.

Это стабилизирующий выпуск, API не содержит изменений по сравнению с v1.1.0-beta01 . Добавлены новые экспериментальные функции (API уровня 4), предназначенные для будущих выпусков Android Auto. Подробнее об экспериментальных API см. в примечаниях к выпуску v1.2.0-alpha01 .

Версия 1.1.0-beta01

1 сентября 2021 г.

Выпущен androidx.car.app:app-*:1.1.0-beta01 . Версия 1.1.0-beta01 содержит следующие изменения.

Все функции v1.1.0 (API 2+) полностью совместимы с Android Auto 6.7 и более поздними версиями. Подробнее см. в руководстве по разработке .

Изменения API

  • Удален Manager как публичный интерфейс ( Ie381b )
  • Добавлена ​​возможность установки фирменного фона для запроса разрешения ( I74b76 ).
  • Добавлен ScreenManager.getStackSize ( I0b16a )
  • Удален конструктор ScreenController , который явно принимает TestCarContext ( Iefebc ).

Исправления ошибок

  • Добавлена ​​проверка уровня API при создании CarHardwareManager ( I48f9b )
  • Добавлены проверки на недопустимое использование CarSpan в API ( I65ae6 ).
  • Исправлена ​​ошибка, из-за которой, если Screen был помечен как завершенный во время его создания, стек оставался в поврежденном состоянии ( I81b13 ).
  • Исправлена ​​ошибка, из-за которой CarNotificationManager.notify регистрировал ошибку для AutomotiveOS при наличии действий со значками в CarAppExtender ( I3633d ).
  • Добавлен метод подтверждения связи между приложением и хостом для установления версии API ( I7d6f8 ).

Версия 1.1.0-альфа02

21 июля 2021 г.

Выпущен androidx.car.app:app-*:1.1.0-alpha02 . Версия 1.1.0-alpha02 содержит следующие изменения.

Новые функции

  • API уровня 3: Добавлен CarHardwareManager , который можно использовать для запроса данных об оборудовании автомобиля, таких как модель и марка, уровень топлива и другие датчики. В настоящее время эта функция доступна только для Android Auto 6.7+ в канале открытого тестирования. Для тестирования на настольном компьютере требуется новая версия Desktop Head Unit , которая будет выпущена отдельно. Следите за новостями на странице «Тестирование приложений Android для автомобилей», чтобы узнать, когда станет доступна новая версия.
  • Дополнительную информацию и рекомендации по проектированию, касающиеся использования этих функций в автомобильных хостах, совместимых с API уровня 3, см. в руководстве по разработке и справочнике по библиотеке.

Изменения API

  • Объединены методы жизненного цикла SessionController и ScreenController в один метод moveToState ( I1ed00 )
  • Добавлен CarContext#getHostInfo() ( I8977e )
  • Удалены устаревшие поля. ( I67168 )
  • Обновлены SessionController и ScreenController для прямого предоставления конструкторов ( Iabf22 ).
  • Удалены PinSignInMethod.Builder и ProviderSignInMethod.Builder ( I9f0cb )
  • Добавлен метод setCarAppResult(), позволяющий использовать шаблонные приложения для получения результата в AAOS ( I37741 ).
  • Аннотированные интерфейсы CarHardware с @MainThread . ( Ib2f85 )
  • Переименован OnCarDataListener в OnCarDataAvailableListener ( I518ca )
  • Обновлены названия методов CarInfo , Speed , Mileage и документация Javadoc. ( I86672 )
  • Переименовано Toll в TollCard . ( I3e7c8 )
  • Удален устаревший PinSignInMethod.getPin , который заменен на PinSignInMethod.getPinCode ( I996ce ).
  • Удален OnInputCompletedListener (заменен на InputCallback ). ( Ib5be1 )
  • Изменен PinSignInMethod для приема CharSequence вместо String ( I275d5 ).

Исправления ошибок

  • Исправления Javadoc для автомобильного оборудования. ( I2abbc )

Внешний вклад

Известные проблемы

  • Использование метода InputSignInMethod в шаблоне SignInTemplate может привести к исключению NullPointerException в хосте car. Эта проблема будет устранена в следующем выпуске библиотеки. Чтобы обойти эту проблему, добавьте следующую строку в конфигурацию Proguard вашего приложения: -keep class androidx.car.app.model.signin.InputSignInMethod { *; }

Версия 1.1.0-альфа01

16 июня 2021 г.

Выпущены androidx.car.app:app:1.1.0-alpha01 , androidx.car.app:app-automotive:1.1.0-alpha01 и androidx.car.app:app-testing:1.1.0-alpha01 . Версия 1.1.0-alpha01 содержит эти коммиты.

Новые функции

  • API уровня 2: новые SignInTemplate и LongMessageTemplate , которые можно использовать для потоков входа, когда транспортное средство припарковано.
  • API уровня 2: новая поддержка интерактивности карты в NavigationTemplate
  • API уровня 2: новая поддержка текста различной длины, позволяющая приложениям предоставлять несколько версий строки для отображения в зависимости от размеров экрана автомобиля.
  • Дополнительную информацию и рекомендации по проектированию, касающиеся использования этих функций в автомобильных хостах, совместимых с API уровня 2, см. в руководстве по разработке и в документации Javadoc к библиотеке.

Изменения API

  • Все методы интерфейса *Callback сделаны по умолчанию и переименованы в OnRequestPermissionsCallback -> OnRequestPermissionsListener ( Ib3ec9 )
  • Обновлены классы androidx.car.app.hardware для удаления ненужных компоновщиков и классов параметров. ( I67beb )
  • Добавлены классы androidx.car.app.hardware для доступа к данным о конкретном автомобиле, таким как уровень топлива, заряд батареи и скорость. ( Iff3c9 )
  • Добавлена ​​поддержка ActionStrip в MessageTemplate ( Ida657 )
  • Добавлен setLoading в MessageTemplate . ( I2a4b5 )
  • ConnectionToCar переименован в CarConnection ( Ife9bd )
  • Изменен NavigationTemplate для возврата явного PanModeDelegate ( I13877 ).
  • Обновлен порядок параметров для CarContext.requestPermissions ( Ib890a )
  • Обновлен ключ метаданных для определения минимального уровня API автомобиля до androidx.car.api.minCarApiLevel ( Ib0d41 ).
  • Создан API, позволяющий наблюдать за состоянием подключения автомобиля ( Ifc935 ).
  • Добавлена ​​поддержка установки переключателя для Action и добавлен тип Action режима панорамирования ( Ica6af ).
  • Создан CarNotificationManager для поддержки отправки уведомлений в автомобиле ( I10d7a ).
  • Добавлен ConstraintManager для предоставления ограничений списка с хоста ( I8690e ).
  • Добавлен API режима панорамирования и полосы действий карты в NavigationTemplate ( I77aa6 )
  • Добавлен API панорамирования и масштабирования в SurfaceCallback для навигационных приложений ( Id5e9d ).
  • Обновлен CarAppApiLevel до 2 ( Ic1540 )
  • Добавлена ​​возможность запрашивать разрешения у CarAppService ( I5421e ).
  • Добавлена ​​аннотация RequiresCarApi(2) к многотекстовому API ( Iacb62 ).
  • Разрешено несколько вариантов текста в заголовке шаблона полусписка ( Ib8df7 )
  • Добавлен новый LongMessageTemplate (требуется Car API уровня 2) ( Ic5cee )

Исправления ошибок

  • Обновлены требования к размеру изображения с учетом больших экранов автомобилей ( I116dc ).
  • Запрещено добавлять более 2 действий в тела шаблонов ( I32157 )
  • Обеспечено, чтобы все создания PendingIntent в библиотеке автомобильных приложений устанавливали флаги. ( If84fe , b/186394900 )
  • Обновлена ​​документация Javadoc, чтобы разрешить изменение текста Row при обновлении ( If3f9c )
  • androidx.activity:activity:1.2.0 теперь является зависимостью API ( Id1cb9 )
  • В тело SignInTemplate и LongMessageTemplate внесены изменения, требующие действий только припаркованного автомобиля, а также обновлена ​​документация с указанием того, что они будут отображаться только при припаркованном автомобиле ( Iddaa9 ).
  • Исправлено исключение, возникающее при появлении Screen во время запуска ( Ifcf40 , b/184664896 ).
  • Разрешен пользовательский цвет текста в ForegroundCarColorSpan ( I69e59 )
  • Исправлена ​​проблема, при которой ON_DESTROY в Session наблюдался после ON_DESTROY Screen ( I52e01 , b/183696617 )
  • Обновлена ​​документация Javadoc о том, когда допускается установка неизвестного оставшегося времени TravelEstimate . ( I99610 , b/183632456 )
  • Обновленное Action для поддержки ForegroundColorSpan в заголовке и любого пользовательского цвета фона ( I578e4 )
  • Не выполнять NavigationManagerCallback#onStopNavigation если обратный вызов очищен до выполнения исполнителя ( I7fc5e , b/181143772 )
  • Исправлена ​​проблема, требующая явного принятия приложением зависимости от lifecycle-common-java8 ( I8b8c8 ).

Известные проблемы

  • В шаблоне SignInTemplate экранная клавиатура отображает значок «поиск» вместо значка «Enter», когда пользователь хочет подтвердить ввод. В качестве обходного решения пользователи могут использовать телефонную клавиатуру, которая активируется, когда поле ввода находится в фокусе.
  • В Android Auto версии 6.5 обратные вызовы панорамирования и масштабирования в SurfaceCallback могут неправильно вызываться для некоторых сенсорных жестов.

Тестирование автомобильного приложения версии 1.0.0

Версия 1.0.0-альфа01

24 марта 2021 г.

Выпущен androidx.car.app:app-testing:1.0.0-alpha01 . Версия 1.0.0-alpha01 содержит следующие изменения.

Это первый релиз Jetpack ранее закрытой тестовой библиотеки. Ознакомьтесь с нашими примерами использования этой библиотеки в тестах.

Новые функции

  • Контроллеры для классов моделей были удалены. Геттеры моделей теперь являются частью общедоступного API, что позволяет проверять значения, заданные в конструкторах.
  • The previous CarAppServiceController has been replaced by the new SessionController for testing logic related to the lifetime of the connection to the hots.

Версия 1.0.0

Версия 1.0.0

21 апреля 2021 г.

androidx.car.app:app:1.0.0 is released. Version 1.0.0 contains these commits.

Major features of 1.0.0

  • In early April, we announced that apps can start publishing to the production channel using androidx.car.app:app:1.0.0-rc01 . Car App Library v1.0.0 is now stable and is fully compatible with Android Auto 6.1 and above.
  • Follow the development guide for details on how to build navigation, parking, and charging apps for Android Auto using the library.

Исправления ошибок

  • Fixed an exception that occurs when popping a Screen during start ( 70aae1 , b/184664896 )
  • Fixed an issue where ON_DESTROY on a Session is observed after a Screen 's ON_DESTROY ( 0ceecb , b/183696617 )

Версия 1.0.0-rc01

24 марта 2021 г.

androidx.car.app:app:1.0.0-rc01 is released. Version 1.0.0-rc01 contains these commits.

Исправления ошибок

  • Fixed a race condition bug where NavigationManagerCallback#onStopNavigation was being called after the callback was cleared. This happened if the callback was cleared before the callback executor actually ran ( I7fc5e , b/181143772 )
  • Fixed an issue that required the app to explicitly take a dependency on lifecycle-common-java8 ( I8b8c8 )
  • Fixed a NullPointerException that was thrown when the app receives a stopNavigation call when it has already removed a callback ( Ib8b89 , b/181143772 )
  • Improvements to not dispatch calls to app if its lifecycle is not at least in a CREATED state ( I86965 , b/179800224 , b/177921120 )
  • Fixed an issue where an invalid min API specified in the app's manifest would throw, causing an ANR on the host. ( Iffedd , b/174231592 )

Версия 1.0.0-beta01

24 февраля 2021 г.

androidx.car.app:app:1.0.0-beta01 is released. Version 1.0.0-beta01 contains these commits.

This is the first Jetpack release of the previously closed source library, and is compatible with Android Auto 6.1 or above. Follow the development guide for details on how to build car apps using the library.

Новые функции

Исправления ошибок

  • Fixed an issue where the wrong Screen is resumed when popping screens sequentially. ( b/177590791 )