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

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

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

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

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

классный

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"
}

Котлин

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")
}

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

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

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

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

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

Версия 1.8

Версия 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, который позволяет комбинировать подразделы, состоящие из списков/сеток.
  • Добавлен Extra-Large как дополнительный размер для элементов сетки.

Изменения 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-rc01

15 января 2025 г.

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

  • Это первый RC, который включает исправление для 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 )
  • Эта библиотека теперь использует аннотации nullness JSpecify , которые являются type-use. Разработчики 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, который все еще находится в статусе dev. 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 содержит эти коммиты.

  • Автомобильные приложения, созданные с использованием этой библиотеки, теперь могут быть загружены в Play Store с использованием API уровня 5 (см. наше руководство по разработке ). Функции, отмеченные API уровня 5 и ниже, совместимы как с Android Auto 8.1+ , так и с Google Automotive App Host 1.4+ .

Новые возможности

В дополнение к возможностям, добавленным в 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 для поддержки выбираемых списков ( I961ed )
  • Устранить ограничение для действий заголовка, чтобы разрешить использование пользовательских значков. ( 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 приложения Car до 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 содержит эти коммиты.

  • Это стабилизационный релиз, в котором нет никаких изменений по сравнению с v1.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 , которая будет выпущена отдельно. Следите за обновлениями на странице Test Android apps for cars, чтобы узнать, когда станет доступна новая версия.
  • Для получения дополнительных сведений и рекомендаций по проектированию использования этих функций в автомобильных хостах, совместимых с 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 )

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

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

  • В SignInTemplate использование InputSignInMethod может привести к исключению NullPointerException в хосте автомобиля. Это будет исправлено в следующем выпуске библиотеки. Чтобы обойти эту проблему, включите эту строку в конфигурацию 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 экранная клавиатура показывает значок «поиск» вместо значка «ввод», когда пользователь хочет подтвердить ввод. В качестве обходного пути пользователи могут получить доступ к клавиатуре телефона, которая активируется, когда поле ввода находится в фокусе.
  • В 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 App Library v1.0.0 теперь стабильна и полностью совместима с Android Auto 6.1 и выше.
  • Подробную информацию о создании приложений навигации, парковки и зарядки для Android Auto с использованием библиотеки см. в руководстве по разработке .

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

  • Исправлено исключение, возникающее при появлении Screen во время запуска ( 70aae1 , b/184664896 ).
  • Исправлена ​​проблема, при которой ON_DESTROY в Session наблюдался после ON_DESTROY Screen ( 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-beta01

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 )