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

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

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

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

Создать новую задачу

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

Версия 1.7

Версия 1.7.0-бета03

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 . ( я201f9 )
  • Устраните пустой конструктор Builder в ConversationItem и замените его конструктором, принимающим необходимые параметры. Также добавляет проверку для защиты от пустых сообщений. ( Ic8221 )

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

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

Версия 1.7.0-бета02

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 , б/345472586 )

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

26 июня 2024 г.

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

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

  • Карта с контентом: новый шаблон — холст карты плюс шаблон контента, который на данный момент может быть списком/сеткой/панелью/сообщением.
    • 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, чтобы избежать сбоев. ( МЭК676 )

Версия 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 , шаблоны карт больше не поддерживаются.
    • Примеры приложений были обновлены, чтобы показать функциональность устаревших шаблонов, использующих MapWithContent .
  • Объект разговора : новые API для отображения разговоров (IM, SMS) и показаний Ассистента в автомобиле.
  • Размеры транспортного средства : новый API для получения размеров транспортного средства (на данный момент данные по AAOS).

Изменения API

  • Отметить тип изображения очень маленькой строки как экспериментальный ( I5184b ).
  • Добавлен API CarInfo#fetchExteriorDimensions , который обеспечивает доступ к информации о внешних размерах автомобиля, такой как высота, ширина и т. д. ( Ia40c5 ).
  • Удален тег ExperimentalAPI из MapWithContentTemplate ( I66db8 ).
  • Обновите параметр GridItem#setTitle , чтобы он имел значение NULL. ( I3d610 )
  • GetHeader API не требует 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 на «Просмотр специального действия». ( 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-бета02

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

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

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

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

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

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-документацию для оформления строки и дополнительных действий. ( я000b6 )

Версия 1.3

Версия 1.3.0-rc01

7 декабря 2022 г.

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

  • Небольшие исправления ошибок из бета01. Никаких серьезных изменений.

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

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 не обрезается, когда машина припаркована, а обрезается до двух строк во время движения. ( [API 5 - All Templates] )
  • Поддержка отключенного состояния для Action , Toggle , Row ( [API 5 - All Templates] )

Изменения API

  • Ослабьте ограничения в списке MapTemplate для поддержки списков выбора ( I961ed ).
  • Удалите ограничение для действий с заголовком, чтобы разрешить использование пользовательских значков. ( Иад28ф )
  • Добавьте ограничение 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 )
  • Добавлена ​​проверка на нулевое значение для получения значка приложения ( 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-бета02

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 , б/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 s, QRCodeSignInMethod и возможность устанавливать подсказки отрисовки (например, флаги) в Action s.

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

  • В 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-бета01

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 )

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

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

  • В 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: новая поддержка текста различной длины, позволяющая приложениям предоставлять несколько версий строки для отображения в зависимости от размеров экрана автомобиля.
  • Следуйте руководству по разработке и библиотеке Javadoc для получения дополнительных сведений и рекомендаций по проектированию использования этих функций в автомобильных хостах, совместимых с уровнем API 2.

Изменения 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 ).
  • Запрещено добавление более двух действий в тело шаблона ( I32157 ).
  • Обеспечено все создание PendingIntent в флагах набора автомобильных приложений. ( If84fe , б/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 ).
  • Обновлена ​​документация Java, когда разрешена установка оставшегося времени TravelEstimate на неизвестное время. ( I99610 , р/183632456 )
  • Обновлено Action для поддержки ForegroundColorSpan в заголовке и любого пользовательского цвета фона ( I578e4 ).
  • Не выполнять NavigationManagerCallback#onStopNavigation , если обратный вызов очищается до выполнения исполнителя ( I7fc5e , b/181143772 )
  • Исправлена ​​проблема, из-за которой приложение должно было явно зависеть от жизненного цикла-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 . Библиотека автомобильных приложений версии 1.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-бета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 )