Car App
Latest Update | Stable Release | Release Candidate | Beta Release | Alpha Release |
---|---|---|---|---|
November 13, 2024 | 1.4.0 | - | 1.7.0-beta03 | - |
Declaring dependencies
To add a dependency on the Car App Library, you must add the Google Maven repository to your project. Read Google's Maven repository for more information.
Add the dependencies for the artifacts you need in the build.gradle
file for
your app or module:
Groovy
dependencies { implementation "androidx.car.app:app:1.4.0" // For Android Auto specific functionality implementation "androidx.car.app:app-projected:1.4.0" // For Android Automotive specific functionality implementation "androidx.car.app:app-automotive:1.4.0" // For testing testImplementation "androidx.car.app:app-testing:1.4.0" }
Kotlin
dependencies { implementation("androidx.car.app:app:1.4.0") // For Android Auto specific functionality implementation("androidx.car.app:app-projected:1.4.0") // For Android Automotive specific functionality implementation("androidx.car.app:app-automotive:1.4.0") // For testing testImplementation("androidx.car.app:app-testing:1.4.0") }
For more information about dependencies, see Add build dependencies.
Feedback
Your feedback helps make Jetpack better. Let us know if you discover new issues or have ideas for improving this library. Please take a look at the existing issues in this library before you create a new one. You can add your vote to an existing issue by clicking the star button.
See the Issue Tracker documentation for more information.
Version 1.7
Version 1.7.0-beta03
November 13, 2024
Fixed a security vulnerability and other general bug fixes. If you are using a lower version, please update to use this version.
androidx.car.app:app-*:1.7.0-beta03
is released. Version 1.7.0-beta03 contains these commits.
API Changes
- Update CAL Serialization / De-serialization code to only handle objects which have the annotation
@CarProtocol
declared on them. (Ic730e) CarAppExtender
can now be used to extend the frameworkNotification.Builder
instead of onlyNotificationCompat.Builder
. (Id3ad7)- Add
KEY_EXCLUDE_MEDIA_ITEM_FROM_MIXED_APP_LIST
extra. (I201f9) - Deprecate the empty Builder constructor on
ConversationItem
and replace it with a constructor that takes required parameters. Also adds a check to guard against null messages. (Ic8221)
Bug Fixes
- Ensure
PlaceList
map uses string (Text-only) Header title. (Ic992f) - This library now uses JSpecify nullness annotations, which are type-use. Kotlin developers should use the following compiler arguments to enforce correct usage:
-Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode
. (Ib5367, b/326456246)
Version 1.7.0-beta02
September 18, 2024
androidx.car.app:app-*:1.7.0-beta02
is released. Version 1.7.0-beta02 contains these commits.
API Changes
- Add
KEY_ROOT_HINT_MEDIA_HOST_VERSION
extra (I8796b) - Replace
TabContents.Api8Builder
class with@ExperimentalCarApi
constructor inTabContents.Builder
class (I26fbe) - Add intent action and extras for
CarMediaApp
(I50782) - Mark messaging APIs as non-experimental (I0b070)
- Add remote item loading to
SectionedItemTemplate
(allows long lists to load without crashing) (I0d122) - Add
SectionedItemTemplate
to list of supported templates insideTabTemplate
in API 8. (Idc5d6)
Bug Fixes
- Removed manual outlining of access to new platform APIs since this happens automatically via API modeling when using R8 with AGP 7.3 or later (e.g. R8 version 3.3) and for all builds when using AGP 8.1 or later (e.g. D8 version 8.1). Clients who are not using AGP are advised to update to D8 version 8.1 or later. See this article for more details. (I9496c, b/345472586)
Version 1.7.0-beta01
June 26, 2024
androidx.car.app:app-*:1.7.0-beta01
is released. Version 1.7.0-beta01 contains these commits. Features are the same as published in alpha01, which are repeated below:
New Features
- Map with Content: New template a Map Canvas plus a content template, which for now can be List / Grid / Pane / Message.
RoutePreview
,PlaceListNavigation
,MapTemplate
are now deprecated. Templates will continue to work as-is.- Sample apps have been updated to show
MapWithContent
usage instead of deprecated templates
- Conversation Item: New APIs for displaying conversations (IM, SMS), and Assistant readout in the car.
- Vehicle Dimensions: New API to retrieve vehicle measures (data on AAOS at the moment).
API Changes
- Add
@ExperimentalCarApi
tag toMediaPlaybackTemplate.Builder
. (Ic1957) - Adds a new
SectionedItemTemplate
in experimental. (I5958a) - Introduce
CarAppApiLevel 8
(I3fa22) - Adds
MediaPlaybackTemplate
for displaying content during media playback in Car App Library. (I3c10d) - Added new api for apps to detect whether the system supports background audio while driving (I0f868)
Bug Fixes
- Fixes certain instances of memory leaks and crashes in CAL client code and in CAL Navigation Sample App. (I55e04)
- Replace
requireNotNull instances
inBaseCarAppActivity
'sonDestroy
method with if-null checks to avoid crashes. (Iec676)
Version 1.7.0-alpha02
April 17, 2024
androidx.car.app:app-*:1.7.0-alpha02
is released. Version 1.7.0-alpha02 contains these commits.
New Features
- Added deprecated flags for map-based templates which
MapWithContent
template will power moving forward.
API Changes
- Deprecate old
MapTemplate
,RoutePreviewNavigationTemplate
,PlaceListNavigationTemplate
and encourage use of newMapWithContentTemplate
(Ib0a08)
Version 1.7.0-alpha01
April 3, 2024
androidx.car.app:app-*:1.7.0-alpha01
is released. We have moved our library versioning scheme to match the active CarApi version. This is to reduce confusion on the naming scheme based on developer feedback. As a result, we will skip versions 1.5 / 1.6 directly moving to 1.7 Version 1.7.0-alpha01 contains these commits.
New Features
- Map with Content: New template named
MapWithContent
which supports List / Grid / Pane / Message as Content inside a map.RoutePreview
,PlaceListNavigation
, Map templates are now deprecated.- Sample apps have been updated to show functionality of deprecated templates using
MapWithContent
.
- Conversation Item: New APIs for displaying conversations (IM, SMS), and Assistant readout in the car.
- Vehicle Dimensions: New API to retrieve vehicle measures (data on AAOS at the moment).
API Changes
- Mark extra small row image type as experimental (I5184b)
- Added
CarInfo#fetchExteriorDimensions
API which allows access to vehicle exterior dimension information such as height, width, etc (Ia40c5) - Removed
ExperimentalAPI
tag fromMapWithContentTemplate
(I66db8) - Update
GridItem#setTitle
parameter to be nullable. (I3d610) GetHeader
API does not require API 7 because it is backwards compatible (I8c812)- Add support for
Header
inListTemplate
, deprecateheaderAction
,headerTitle
,actionStrip
(I7ae01) - Deprecate
title
,headerAction
,actionStrip
inGridTemplate
and add support forHeader
(I41a9c) - Remove level 7 requirement for experimental APIs: Badge,
GridTemplate
item size and image shape getters/setters,GridItem
methods for getting/setting Badge. (Id71eb) - Deprecate
title
,headerAction
,actionStrip
inPaneTemplate
, add newHeader
support (I23154) - Changed Media Center telemetry from
BroadcastReceiver
to Browse Custom Action. (I4185f) - Added
Header
attribute support inMessageTemplate
. Deprecated support forActionStrip
,headerAction
andtitle
. (Ie2de8) - Modify alert constant visibility (Icf8a8)
- Remove
isLoading
attribute from the parent template (I651e6) - Add extras to inform media apps of the main UI parameters (I85ca2)
- Add media center analytics feature to
MediaExtensions
(I7ce28) - Added option for extra small image on rows. (I72c03)
Bug Fixes
- Update javadoc on
ConversationItem
to state that messages should be sorted in order from oldest to newest. (I77a2a) - Update
ListTemplate
truncation logic to remove oldest messages fromConversationItem
(Ie0a61)
Version 1.4
Version 1.4.0
May 29, 2024
androidx.car.app:app-*:1.4.0
is released. Version 1.4.0 is a promotion of 1.4.0-rc02.
Important changes since 1.3.0
- Instrument Cluster map rendering for Navigation apps
- New Tab Template for improved app layout / usability
- Support for Adaptive task limits
- Secondary actions on list elements
Version 1.4.0-rc02
December 13, 2023
androidx.car.app:app-*:1.4.0-rc02
is released. Version 1.4.0-rc02 contains these commits.. Minor fixes only
Bug Fixes
- Update javadoc on
ConversationItem
to state that messages should be sorted in order from oldest to newest (I77a2a) - Update
ListTemplate
truncation logic to remove oldest messages fromConversationItem
(Ie0a61)
Version 1.4.0-rc01
November 1, 2023
androidx.car.app:app-*:1.4.0-rc01
is released with no notable changes. Version 1.4.0-rc01 contains these commits..
Version 1.4.0-beta02
September 20, 2023
androidx.car.app:app-*:1.4.0-beta02
is released. Version 1.4.0-beta02 contains these commits.. This is almost identical to beta01, but lowers the compileSdk
requirement to 33.
Bug Fixes
- Fix a bug where loading screens on Tabs would not be displayed appropriately. (cae860)
Version 1.4.0-beta01
August 9, 2023
androidx.car.app:app-*:1.4.0-beta01
is released. Version 1.4.0-beta01 contains these commits..
Note: 1.4-beta01 requires compileSdk34, which is still in dev status. 1.4-beta02 will correct this issue. Alternatively, you can add
android.suppressUnsupportedCompileSdk=34
to your project'ssettings.gradle
file to safely temporarily suppress the warning.
New Features
- Instrument Cluster map rendering for Navigation apps
- New Tab Template for improved app layout / usability
- Support for Adaptive task limits
- Secondary actions on list elements
API Changes
- See alpha02
Version 1.4.0-alpha02
July 26, 2023
androidx.car.app:app-*:1.4.0-alpha02
is released. Version 1.4.0-alpha02 contains these commits.
- Release of Alpha02 is intended to be a preparation for an upcoming release of beta01.
New Features
- Map rendering on Instrument Cluster support for navigation apps
- Added Tabs for apps to improve layout experience
- Added List / Grid template rendering options
- Added new categories for Weather and Comms
- Move several API’s to the next CarApi 7 release
API Changes
- Add multimedia fields to
CarMessage
(I5aaf6) - Adds custom actions to
ConversationItem
in Car App Library (Ie5ed6) - Add extras to indicate a media item is played with an immersive audio format and showcase its content format logo (Icb5bb)
- Add new Action type,
ActionsConstraints
API to support compose button. (I31661) - Made
set/getTemplate
asset/get ContentTemplate
(Ica036) - Template parameter would now be
@NonNull
. UpdatedMapWithContentTemplate
API documentation (I0f8ed) - Removes
@ExperimentalCarApi
tag for Actions inListTemplate
for launch in CAL 1.4 (I2cfcb) - Removes
@ExperimentalCarApi
tag forTabTemplate
(Ifcb82) - Remove
@ExperimentalCarApi
annotations from Row secondary actions and decorations (I8487e) - Adds active tab content ID to
TabTemplate
and deprecates active state on Tabs (I96932) - Add
ItemImageShape
property toGridTemplate
(Ibf431) - Add
ItemSize
property toGridTemplate
, which controls grid item sizing according to relative small, medium, large buckets. (Icdb3b) - Open up the API access for developers to gain a copy of the current screen stack. (I48107)
- Adds category for weather apps to Car App Library (I2be44)
- Adds category for calling apps to Car App Library (Icab33)
- Replaced
GridItem.Builder#setBadge()
with overloadedsetImage()
methods (Id2000) - Add icon property to Badge (I629b2)
- Add method to set dot badge background color (I6411c)
- Add Badge property to
GridItem
, allowing a badge to be displayed on top of aGridItem
image. (I95de7) - Added an experimental Badge object that will represent a badge to be displayed over an image. (I9878d)
Version 1.4.0-alpha01
February 22, 2023
androidx.car.app:app-*:1.4.0-alpha01
is released. Version 1.4.0-alpha01 contains these commits.
API Changes
- Adds top-level actions to
GridTemplate
in Car App Library (Id0191) - Adds top-level actions to
ListTemplate
in Car App Library (I9efab) - Add extras to link a media item's subtitle or its description to other media items (Ic84bf)
- Update api level for row actions to level 6. (Ie0a69)
- Add messaging callbacks to A4C (Ie3986)
Bug Fixes
- Add missing java doc references for
CarMessage
. (I5db1c) - Override
equals()
andhashCode()
forConversationItem
andCarMessage
(I6fd10) - Improve
ConversationItem.mMessages
validation (require non-null, non-empty (Iafc51) - Add
@Keep
annotations toConversationItem
fields (I5d250) - Update java docs for the Row decoration and secondary actions. (I000b6)
Version 1.3
Version 1.3.0-rc01
December 7, 2022
androidx.car.app:app-*:1.3.0-rc01
is released. Version 1.3.0-rc01 contains these commits.
- Minor bug fixes from beta01. No Major Changes.
Version 1.3.0-beta01
September 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
, and androidx.car.app:app-testing:1.3.0-beta01
are released. Version 1.3.0-beta01 contains these commits.
- Car apps built using this library can now go to the Play Store using API Level 5 (see our development guide). Features annotated with API level 5 and under are compatible with both Android Auto 8.1+ and the Google Automotive App Host 1.4+.
New Features
In addition to capabilities added in Car App Library 1.3.0-alpha01, the following features have been added as part of beta01 (All features here only involve with host side changes without any API changes):
- The floating navigation bar will continue to show even when a user is in a map-based selection screen in
PlaceListNavigationTemplate
,RoutePreviewNavigationTemplate
, andMapTemplate
. This can be done by updating navigation info throughNavigationManager.updateTrip()
. - Enable the action button with
FLAG_DEFAULT
to have a timeout animation. This button will be clicked by default after the timeout. ([API 5 - All Templates]
) - A
Row
s subtext is not truncated when the car is parked, but truncated to 2 lines while driving. ([API 5 - All Templates]
) - Support disabled state for
Action
,Toggle
,Row
([API 5 - All Templates]
)
API Changes
- Relax constraints in
MapTemplate
list to support selectable lists (I961ed) - Remove the constraint for Header Actions to allow for custom icons. (Iad28f)
- Add a constraint
setOnClickListenerAllowed()
toActionsConstraints
. Where it allowedAction
to setOnClickDelegate()
to actions except the standard icon types. (TYPE_APP_ICON
,TYPE_BACK
, andTYPE_PAN
) (I3c745)
Bug Fixes
- Added compatibility of Android Automotive Template Host 1.4+ with curved displays (
[Host change]
)
Version 1.3.0-alpha01
July 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
, and androidx.car.app:app-testing:1.3.0-alpha01
are released. Version 1.3.0-alpha01 contains these commits.
Features annotated with API level 5 are compatible with Android Auto 7.9 and above.
New Features
- API Level 5: new
MapTemplate
that can be used by navigation apps to display pane or list content alongside a map (If5826, If44b8) - API Level 5: new
CarAudioRecord
API to allow recording audio input via the host vehicle's microphone (I5e71a) - API Level 5: new
SuggestionManager
API to allow apps to provide suggestions to the host (I5c103) - API Level 5: new
Alert
API to display in context notifications on theNavigationTemplate
(I163a7, I5ad70) - API Level 5: new
Header
andMapController
components to facilitate re-use across templates (If5826) - Added
androidx.car.app.category.POI
as a category for enabling POI apps (and deprecatedandroidx.car.app.category.PARKING
andandroidx.car.app.category.CHARGING
) (I59da1)
API Changes
- API Level 5: new
onClick
method in theSurfaceCallback
interface to allow for tap on map interactivity (Ia9777) - API Level 5: new flags
Action.FLAG_IS_PERSISTENT
andAction.FLAG_DEFAULT
to describeAction
s (I96318, I5ad70) - API Level 5: new enabled/disabled state for the
Action
,Row
, andToggle
components (host support coming around the 1.3.0-beta01 release of the library) (Id8a09) - API Level 5: Favor the new
Header
component viasetHeader
on thePlaceListNavigationTemplate.Builder
andRoutePreviewNavigationTemplate.Builder
, deprecating the existingsetTitle
andsetHeaderAction
methods (I30e6a) - API Level 5: new
setOnContentRefreshListner
method on thePlaceListMapTemplate.Builder
andPlaceListNavigationTemplate.Builder
for use with implementations of the newOnContentRefreshListner
interface. - API Level 5: New
setTripText
andsetTripIcon
on theTravelEstimate.Builder
to customise the travel estimate card (Idcc6d, Ic620d) - Add support for
CarIconSpan
s in thePaneTemplate
's title (Ia1ee0) - Add support for
CarIconSpan
s in aRow
's title and text (Ic1e3c) - Map
ActionStrip
s can now have up to four actions (If3522) - Update Car App API level to 5 (I26b8e)
- Headers/titles are now optional for the
PlaceListMapTemplate
,PlaceListNavigationTemplate
,RoutePreviewNavigationTemplate
,GridTemplate
,ListTemplate
,LongMessageTemplate
,MessageTemplate
,PaneTemplate
, andSignInTemplate
(I2078d, Icadde)
Bug Fixes
- Updated
PaneTemplate
image sizing rules to be a square bounding box (Idd72e) - Fixed an exception that happens if the screen stack is modified after
State.DESTROYED
. (I3c8eb) - Added a null check for retriving the app icon (I3f710)
- Update Car Hardware API to use
STATUS_UNKNOWN
instead ofSTATUS_UNAVAILABLE
by default (Ic9444) - Check if display exists before creating surface (Ice027a)
- Fix
CarValue.equals()
bug involvingSTATUS_UNIMPLEMENTED
(I24451)
Version 1.2
Version 1.2.0
November 9, 2022
androidx.car.app:app-*:1.2.0
is released. Version 1.2.0 contains these commits.
- This is a stabilization release, and there are no changes compared to v1.2.0-rc01.
Version 1.2.0-rc01
March 23, 2022
androidx.car.app:app-*:1.2.0-rc01
is released. Version 1.2.0-rc01 contains these commits.
- This is a stabilization release, and there are no API changes compared to
v1.2.0-beta02
. New experimental features (API level 5) have been added that are intended for future Android Auto and Android Automotive releases.
Bug Fixes
- Fixed an exception that happens if the screen stack is modified after
State.DESTROYED
. (I3c8eb) - Updated
CarSensors
API to indicate that they are not implemented for AAOS (Idd57b) - Updated
PlaceListMapTempalte.Builder#setCurrentLocationEnabled
to indicate that ACCESS_COARSE_LOCATION would be sufficient for the feature (I510c2) - Made exit number optional for roundabout-with-angle maneuver types (Ife7d1)
Version 1.2.0-beta02
January 26, 2022
androidx.car.app:app-*:1.2.0-beta02
is released. Version 1.2.0-beta02 contains these commits.
Car apps built with this library version targeting the Android Automotive OS
platform can now be published to the Play Store open testing channel. Refer to the development guide for more details.
Features annotated with API level 4 and under are compatible with both Android Auto
7.2+ and the new Android Automotive OS
platform. See the Known Issues
section below for caveats.
API Changes
- Added experimental
setOnContentRefreshListener
API to POI templates (I6bf22)
Bug Fixes
- Fixed a memory leak in
CarAppService
when the car host unbinds. (I5c9ca, b/203594731) - Updated
CarAppActivity
javadoc to include requirements for singleTask launchmode (Id2f95) - Reduces the visual glitch on resume. (Iff7e0)
Known Issue(s)
- The map
ActionStrip
s in thePlaceListNavigationTemplate
andRoutePreviewNavigateTemplate
will start becoming available in the nextAndroid Auto
andAndroid Automotive OS
releases.
Version 1.2.0-alpha02
December 15, 2021
androidx.car.app:app-*:1.2.0-alpha02
is released. Version 1.2.0-alpha02 contains these commits.
Features annotated with API level 4 has been upgraded from experimental to stable, including the map ActionStrip
s in the PlaceListNavigationTemplate
and RoutePreviewNavigateTemplate
, the CarIcon
image in Pane
s, the QRCodeSignInMethod
and the ability to set rendering hints (e.g. flags) in Action
s.
New Features
- In Android Auto 7.1+, the item limit for
Pane
has been increased from 2 to 4.
API Changes
- Added an experimental
toString()
method toCarUnit
(I36a3b)
Bug Fixes
- Fixed a crash that happened in
CarAppPermissionActivity
if the callback is dead (If9823) - Changed
Pane
default list limit to 4 (I0068b)
Version 1.2.0-alpha01
November 3, 2021
androidx.car.app:app-*:1.2.0-alpha01
is released. Version 1.2.0-alpha01 contains these commits.
All new v1.2.0
features (API 4+) are currently experimental targeting future Android Auto and Android Automotive OS releases. Refer to the development guide for more details.
API Changes
- Made
AutomotiveCarInfo
API experimental. (Ia13e5) - Added Car App Library API level 4 (I2a2e7)
- API Level 4: Added support for setting a
CarIcon
inPane
(Ifcc12) - API Level 4: Added QR code sign in method (Ib623e)
- API Level 4: Added set/getFlags to
Action
(Ic03ab) - API Level 4: Added support for panning and zooming in
PlaceListNavigationTemplate
andRoutePreviewNavigationTemplate
(I9d8a3)
Bug Fixes
- API Level 4: Add mechanism to allow apps to send location updates to the car host (I3bad3)
- Fix an issue where the host validation logic was not finding the TEMPLATE_RENDERER permission properly (I62618)
Version 1.1.0
Version 1.1.0
December 15, 2021
androidx.car.app:app-*:1.1.0
is released. Version 1.1.0 contains these commits.
This is a stabilization release, and there are no changes compared to v1.1.0-rc01
. Also see the release notes for v1.2.0-alpha02
for more details on new features for the car app library.
Important changes since 1.0.0
- API Level 2:
SignInTemplate
andLongMessageTemplate
that can be used for sign-in flows when the vehicle is parked - API Level 2: map interactivity support within the
NavigationTemplate
- API Level 2: multiple-length text support to allow apps to provide multiple versions of string for display depending on the car screen sizes.
- API Level 3:
CarHardwareManager
that can be used to query vehicle’s hardware data, such as model and make, fuel levels and other sensors.
Version 1.1.0-rc01
November 3, 2021
androidx.car.app:app-*:1.1.0-rc01
is released. Version 1.1.0-rc01 contains these commits.
This is a stabilization release, and there are no API changes compared to v1.1.0-beta01
. New experimental features (API level 4) have been added that are intended for future Android Auto releases. See the release notes for v1.2.0-alpha01
for more details on the experimental APIs.
Version 1.1.0-beta01
September 1, 2021
androidx.car.app:app-*:1.1.0-beta01
is released. Version 1.1.0-beta01 contains these commits.
All v1.1.0
features (API 2+) are fully compatible with Android Auto 6.7 and above. Refer to the development guide for more details.
API Changes
- Removed
Manager
as a public interface (Ie381b) - Added ability to set a custom branded background for permission request (I74b76)
- Added
ScreenManager.getStackSize
(I0b16a) - Removed
ScreenController
constructor that explicit takesTestCarContext
(Iefebc)
Bug Fixes
- Added API level check when creating
CarHardwareManager
(I48f9b) - Added checks for invalid
CarSpan
usage across the API (I65ae6) - Fixed an issue where if a
Screen
is marked as finished during its creation, it would leave the stack in a broken state (I81b13) - Fix an issue where
CarNotificationManager.notify
would log an error for AutomotiveOS if there were actions with icons in theCarAppExtender
(I3633d) - Added a handshake method for app and host to establish an API version (I7d6f8)
Version 1.1.0-alpha02
July 21, 2021
androidx.car.app:app-*:1.1.0-alpha02
is released. Version 1.1.0-alpha02 contains these commits.
New Features
- API Level 3: Added a
CarHardwareManager
that can be used to query vehicle’s hardware data, such as model and make, fuel levels and other sensors. Currently, this feature is only available for Android Auto 6.7+ in the open-testing channel. Testing this in a desktop environment requires a new version ofDesktop Head Unit
which will be released separately. Stay tuned on Test Android apps for cars page for details on when the new version becomes available. - Follow the development guide and the library reference for additional details and design guidelines on how to use these features in car hosts that are compatible with API level 3.
API Changes
- Consolidated
SessionController
andScreenController
lifecycle methods into a singlemoveToState
method (I1ed00) - Added
CarContext#getHostInfo()
(I8977e) - Removed deprecated fields. (I67168)
- Updated
SessionController
andScreenController
to expose constructors directly (Iabf22) - Removed
PinSignInMethod.Builder
andProviderSignInMethod.Builder
(I9f0cb) - Added 'setCarAppResult()' to enable using templated apps 'for result' in AAOS (I37741)
- Annotated
CarHardware
interfaces with@MainThread
. (Ib2f85) - Renamed
OnCarDataListener
toOnCarDataAvailableListener
(I518ca) - Updated
CarInfo
,Speed
,Mileage
method names and javadoc. (I86672) - Renamed
Toll
toTollCard
. (I3e7c8) - Removed deprecated
PinSignInMethod.getPin
which is replaced byPinSignInMethod.getPinCode
(I996ce) - Removed
OnInputCompletedListener
(replaced withInputCallback
). (Ib5be1) - Changed
PinSignInMethod
to takeCharSequence
instead ofString
(I275d5)
Bug Fixes
- Javadoc fixes for car hardware. (I2abbc)
External Contribution
Known Issues
- In the
SignInTemplate
, using theInputSignInMethod
may result in aNullPointerException
in the car host. This will be addressed in the next release of the library. To workaround the issue, include this line in your app’s Proguard config:-keep class androidx.car.app.model.signin.InputSignInMethod { *; }
Version 1.1.0-alpha01
June 16, 2021
androidx.car.app:app:1.1.0-alpha01
, androidx.car.app:app-automotive:1.1.0-alpha01
, and androidx.car.app:app-testing:1.1.0-alpha01
are released. Version 1.1.0-alpha01 contains these commits.
New Features
- API Level 2: new
SignInTemplate
andLongMessageTemplate
that can be used for sign-in flows when the vehicle is parked. - API Level 2: new map interactivity support within the
NavigationTemplate
- API Level 2: new multiple-length text support to allow apps to provide multiple versions of string for display depending on the car screen sizes.
- Follow the development guide and the library Javadoc for additional details and design guidelines on how to use these features in car hosts that are compatible with API level 2.
API Changes
- Made all
*Callback
interface methods default and renamedOnRequestPermissionsCallback
->OnRequestPermissionsListener
(Ib3ec9) - Updated
androidx.car.app.hardware
classes to remove unnecessary builders and parameter classes. (I67beb) - Added
androidx.car.app.hardware
classes for access to car specific data such as fuel, battery and speed. (Iff3c9) - Added
ActionStrip
support onMessageTemplate
(Ida657) - Added
setLoading
toMessageTemplate
. (I2a4b5) - Renamed
ConnectionToCar
toCarConnection
(Ife9bd) - Changed
NavigationTemplate
to return an explicitPanModeDelegate
(I13877) - Updated parameter order for
CarContext.requestPermissions
(Ib890a) - Updated metadata key to define min car api level to
androidx.car.api.minCarApiLevel
(Ib0d41) - Created an API that allows observing car connection state (Ifc935)
- Added support for setting a toggle for an
Action
, and added the pan modeAction
type (Ica6af) - Created
CarNotificationManager
to support sending notification in the car (I10d7a) - Added
ConstraintManager
for providing list limits from the host (I8690e) - Added pan mode and map action strip API in
NavigationTemplate
(I77aa6) - Added pan and zoom API in
SurfaceCallback
for navigation apps (Id5e9d) - Updated
CarAppApiLevel
to 2 (Ic1540) - Added ability to request permissions from a
CarAppService
(I5421e) - Added
RequiresCarApi(2)
annotation to multi-text API (Iacb62) - Allowed multiple text variants in the half-list template title (Ib8df7)
- Added new
LongMessageTemplate
(requires Car API level 2) (Ic5cee)
Bug Fixes
- Updated image size requirements to account for larger car screens (I116dc)
- Disallowed adding more than 2 actions in template bodies (I32157)
- Ensured all creation of
PendingIntent
s in the car app library set flags. (If84fe, b/186394900) - Updated javadoc to allow
Row
's text changes as refreshes (If3f9c) androidx.activity:activity:1.2.0
is now an api dependency (Id1cb9)- Made
SignInTemplate
andLongMessageTemplate
to require parked-only actions in their body and update documentation to indicate they will only be shown when the car is parked (Iddaa9) - Fixed an exception that occurs when popping a
Screen
during start (Ifcf40, b/184664896) - Allowed custom text color in
ForegroundCarColorSpan
(I69e59) - Fixed an issue where
ON_DESTROY
on aSession
is observed after aScreen
'sON_DESTROY
(I52e01, b/183696617) - Updated javadoc on when setting a
TravelEstimate
's remaining time to an unknown time is allowed. (I99610, b/183632456) - Updated
Action
to supportForegroundColorSpan
in the title and any custom background color (I578e4) - Do not execute
NavigationManagerCallback#onStopNavigation
if the callback is cleared before the executor executes (I7fc5e, b/181143772) - Fixed an issue that require the app to explicitly take on a dependency on lifecycle-common-java8 (I8b8c8)
Known Issues
- In the
SignInTemplate
, the on-screen keyboard shows a “search” icon instead of an “enter” icon when the user wants to confirm the input. As a workaround, users can access the phone keyboard that activates when the input field is in focus. - In Android Auto version 6.5, the pan and zoom callbacks in
SurfaceCallback
may be incorrectly invoked for some touch gestures.
Car App Testing Version 1.0.0
Version 1.0.0-alpha01
March 24, 2021
androidx.car.app:app-testing:1.0.0-alpha01
is released. Version 1.0.0-alpha01 contains these commits.
This is the first Jetpack release of the previously closed source testing library. Refer to our samples on how to use this library in your tests.
New Features
- The controllers for the model classes have been removed. Model getters are now part of the public API surface which allows for validating values that were set in the builders.
- The previous
CarAppServiceController
has been replaced by the newSessionController
for testing logic related to the lifetime of the connection to the hots.
Version 1.0.0
Version 1.0.0
April 21, 2021
androidx.car.app:app:1.0.0
is released. Version 1.0.0 contains these commits.
Major features of 1.0.0
- In early April, we announced that apps can start publishing to the production channel using
androidx.car.app:app:1.0.0-rc01
. Car App Library v1.0.0 is now stable and is fully compatible with Android Auto 6.1 and above. - Follow the development guide for details on how to build navigation, parking, and charging apps for Android Auto using the library.
Bug Fixes
- Fixed an exception that occurs when popping a
Screen
during start (70aae1, b/184664896) - Fixed an issue where
ON_DESTROY
on aSession
is observed after aScreen
'sON_DESTROY
(0ceecb, b/183696617)
Version 1.0.0-rc01
March 24, 2021
androidx.car.app:app:1.0.0-rc01
is released. Version 1.0.0-rc01 contains these commits.
Bug Fixes
- Fixed a race condition bug where
NavigationManagerCallback#onStopNavigation
was being called after the callback was cleared. This happened if the callback was cleared before the callback executor actually ran (I7fc5e, b/181143772) - Fixed an issue that required the app to explicitly take a dependency on
lifecycle-common-java8
(I8b8c8) - Fixed a
NullPointerException
that was thrown when the app receives astopNavigation
call when it has already removed a callback (Ib8b89, b/181143772) - Improvements to not dispatch calls to app if its lifecycle is not at least in a
CREATED
state (I86965, b/179800224, b/177921120) - Fixed an issue where an invalid min API specified in the app's manifest would throw, causing an ANR on the host. (Iffedd, b/174231592)
Version 1.0.0-beta01
February 24, 2021
androidx.car.app:app:1.0.0-beta01
is released. Version 1.0.0-beta01 contains these commits.
This is the first Jetpack release of the previously closed source library, and is compatible with Android Auto 6.1 or above. Follow the development guide for details on how to build car apps using the library.
New Features
- Introduced a
GridTemplate
which your app can use to show a list of UI elements in a grid layout. - Introduced a
CarAppService.createHostValidator
method to validate that a host connection is from a trusted source (for example, Android Auto). - Added a
CarAppExtender.Builder.setColor
API. (b/174231592)
Bug Fixes
- Fixed an issue where the wrong
Screen
is resumed when popping screens sequentially. (b/177590791)