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

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

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

Чтобы добавить зависимость от 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-альфа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, что позволяет проверять значения, заданные в конструкторах.
  • Предыдущий CarAppServiceController был заменен новым SessionController для тестирования логики, связанной с срок службы подключения к горячим.

Версия 1.0.0

Версия 1.0.0

21 апреля 2021 г.

androidx.car.app:app:1.0.0 выпускается. Версия 1.0.0 содержит эти коммиты.

Основные особенности 1.0.0

  • В начале апреля мы объявили , что приложения могут начать публиковать в производственном канале, используя androidx.car.app:app:1.0.0-rc01 . Библиотека приложений CAR V1.0.0 теперь стабильна и полностью совместима с Android Auto 6.1 и выше.
  • Следуйте руководству по разработке для получения подробной информации о том, как создать навигацию, парковку и зарядку приложений для Android Auto с помощью библиотеки.

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

  • Исправлена исключение, которое происходит при вызове Screen во время запуска ( 70AAE1 , b/184664896 )
  • Исправлена проблема, где ON_DESTROY на Session наблюдается после Screen ON_DESTROY ( 0ceecb , b/183696617 )

Версия 1.0.0-RC01

24 марта 2021 года

androidx.car.app:app:1.0.0-rc01 выпущен. Версия 1.0.0-RC01 содержит эти коммиты.

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

  • Исправлена ошибка в условиях гонки, где NavigationManagerCallback#onStopNavigation вызывали после того, как обратный вызов был очищен. Это произошло, если обратный вызов был очищен до того, как исполнител обратного вызова фактически запустился ( i7fc5e , b/181143772 )
  • Исправлена проблема, которая требовала, чтобы приложение явно зарекомендовала себя от lifecycle-common-java8 ( i8b8c8 )
  • Исправлена NullPointerException , которое было брошено, когда приложение получает звонок stopNavigation , когда оно уже удалило обратный вызов ( IB8B89 , B/181143772 )
  • Улучшения не отправлять вызовы в приложение, если его жизненный цикл не по крайней мере в CREATED состоянии ( I86965 , B/179800224 , B/177921120 )
  • Исправлена проблема, в которой бросает неверный мин API, указанный в манифесте приложения, вызывая ANR на хосте. ( Iffedd , B/174231592 )

Версия 1.0.0-бета01

24 февраля 2021 года

androidx.car.app:app:1.0.0-beta01 выпускается. Версия 1.0.0-BETA01 содержит эти коммиты.

Это первый выпуск JetPack ранее библиотеки с закрытым исходным кодом и совместим с Android Auto 6.1 или выше. Следуйте руководству по разработке для получения подробной информации о том, как создавать автомобильные приложения с помощью библиотеки.

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

  • Представил GridTemplate , который ваше приложение может использовать для отображения списка элементов пользовательского интерфейса в макете сетки.
  • Представил метод CarAppService.createHostValidator , чтобы подтвердить, что соединение хоста принадлежит надежному источнику (например, Android Auto).
  • Добавлена CarAppExtender.Builder.setColor api. ( B/174231592 )

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

  • Исправлена проблема, в которой неверный Screen возобновится при последовательности экранов. ( B/177590791 )