Version 4.1.0 Alexa Auto SDK
Version 4.1.0 Alexa Auto SDK
The Alexa Auto SDK is for automotive OEMs to integrate Alexa directly into vehicles.
v4.1.0
- v4.1.0 released on 2022-05-27
Enhancements
Auto SDK
- Added support to display a smart home dashboard using voice requests such as “Alexa, show me my smart home dashboard”. The user can use the dashboard to monitor and control the states of their smart home devices such as lights, plugs, switches, and thermostats. The smart home dashboard is powered by APL and updates to reflect the vehicle’s settings for day and night mode, custom themes, and driving state.
- Added the Feature Discovery interface, enabling users to learn about Alexa features by providing an API for your application to retrieve and display suggested utterances dynamically. For more information, see the Feature Discovery documentation.
- Deprecated the Local Voice Control (LVC) APK in favor of a new LVC AACS App Component that integrates LVC directly into AACS. See the Local Voice Control extension documentation for more information.
- Enhanced LVC offline local search to support voice-based search and navigation to cheap gas stations and electric vehicle charging stations for en-US locale.
- Enhanced LVC offline navigation feature to show/navigate to previous destinations, show alternate route, route-based ETA, and add/remove waypoints to POI, user favorites, and address for en-US locale.
- Updated Alexa to disallow Alexa Presentation Language (APL), directives from skills that are not explicitly certified as safe for automotive. Certified skills may render APL, and uncertified skills fall back to experiences with TemplateRuntime (if supported) or voice-only.
- Updated the aace.vehicle.info configuration to include two additional optional fields, engineType and rseEmbeddedFireTvs. See the Core module documentation for additional information.
- Updated the Auto SDK Builder Tool to use a custom Python interpreter /usr/bin/env python3 rather than the previously hardcoded /usr/bin/python3
- Updated the Auto SDK Builder Tool to use the additional compiler and linker flags that enable exploit mitigation techniques, including safe stack, stack canary, fortifying source, and RELRO.
- Updated the following dependency versions:
- The Auto SDK build system was updated to support QNX 7.0 and QNX 7.1 SDP cross-compilation.
- Added the option
libcurl:openssl_version
to the Auto SDK build system recipes to specify theOpenSSL
version. - Enhanced Auto SDK logs to display thread ID and uses different colors per log level.
- Added support to build Auto SDK using a custom toolchain. See the Build Alexa Auto SDK documentation for more information.
AACS Sample App for Android Automotive OS
- Added an Alexa app icon that allows users to launch the AACS sample app directly from the app launcher instead of the system settings menu.
- Added Things-to-try in setting menu that displays a list of utterances for user to try out in different domains.
- Enhanced the Navigation app component that provides a plugin framework for 3P navigation provider. See Alexa Auto Navigation app-component for details.
- Interruption Behavior - Push-to-talk (PTT) now interrupts while Alexa is speaking/thinking, and cancels when Alexa is listening. Barge-in sounds now play, in the previous version the new dialog would start silently.
- Alexa setup flow is now interrupted if the vehicle is in motion, and setup flow is resumed when the vehicle returns to the parked state. Implemented a BACK button that returns the user to the previous activity when pressed.
- Enhanced the contacts sharing consent UI to display the consent screen when a new phone is paired and to persist consent for subsequent pairings. Previously, the consent UI only displayed as part of the setup flow.
- Enhanced the communications screen UI to display all paired phones instead of only connected phones. This enables the user to enable or disable contacts from a paired phone at any time.
- Added a short "exit" animation to the voice chrome UI that displays on transitions from Speaking to Idle or Listening to Idle.
- Added support for handling Alexa's Language selection mismatch between system and Alexa supported languages during first-time user experience (FTUE) and subsequent language changes.
Resolved Issues
Auto SDK
- Fixed an issue in which the CBL module did not check the network connection status when attempting to refresh an access token. If there was no network connection when the refresh was attempted, the token would not refresh immediately when connection was restored.
- Fixed an issue in which the “Alexa, stop” utterance did not stop music playback when audio ducking is enabled.
- Fixed periodic Engine shutdown crashes in
ContextManager
,ExternalMediaPlayer
, and AACS. - Fixed an issue in which the
Navigation module
inserted an invalid error code in the payload of theShowAlternativeRoutesFailed
event. Additionally added theNOT_NAVIGATING
error code to theNavigation AASB
interface. See the Navigation module documentation for info about which error codes to use. - Fixed issues that could cause the Engine to hang indefinitely at shutdown.
- Fixed an issue in the Local Navigation module of the LVC extension that could cause Engine restart to fail after a previous Engine stop.
- Fixed an issue in which applications had to manually include header files from the Nlohmann - JSON for Modern C++ library (https://github.com/nlohmann/json) because the Auto SDK build did not export them
- Fixed an issue in which offline local search and navigation for POIs was not working.
- Fixed an issue in which the C++ sample app crashed during launch on the Poky Linux 32-bit platform.
AACS Sample App
- Fixed the language selection screen in the AACS sample app when the Preview Mode feature is enabled.
- Fixed an issue in which the AACS sample app did not play alarms when the device is offline.
- Fixed an issue in which the display card for a second weather utterance closed too soon.
- Fixed an issue which the AACS sample app did not reset the contact permissions when switching accounts
- Fixed an issue in which the AACS sample app stopped music playback when the user tapped the screen showing a display card.
- Fixed an issue in which AACS did not play the Alexa confirmation speech when the user creates a notification while music is playing.
Known Issues
General
- The Alexa Automotive UX guidelines specify when to automatically dismiss a
TemplateRuntime
display card for each template type. The Engine publishes theTemplateRuntime
interface messagesClearTemplate
andClearPlayerInfo
based on the timeouts configured in theaace.alexa.templateRuntimeCapabilityAgent
Engine configuration. However, the configuration does not provide enough granularity to specify timeouts for different types of display cards. Consequently, there is no way for your application to configure automatically dismissing local search templates (e.g.,LocalSearchListTemplate2
) with a different timeout than other templates (e.g.,WeatherTemplate
). The configuration also does not provide a way for you to specify infinite timeout forNowPlaying
cards. You must implement your application’s dismissal logic for display cards and media info accordingly. - There is a rare race condition in which publishing the
AlexaClient.StopForegroundActivity
message does not cancel the active Alexa interaction. The race condition can happen when the application publishes the message at the beginning of theTHINKING
stateAlexaClient.DialogStateChanged
transition.
Car control
- If you configure the Auto SDK Engine and connect to Alexa using a set of endpoint configurations, you cannot delete any endpoint in the set from Alexa. For example, after you configure set A with endpoints 1, 2, and 3, if you change your car control configuration during development to set B with endpoints 2, 3, and 4, Alexa retains endpoint 1 from set A, which might interfere with resolving the correct endpoint ID for your utterances. However, any endpoint configurations with matching IDs override previous configurations. For example, the configuration of endpoint 2 in set B replaces endpoint 2 in set A. During development, limit configuration changes to create only supersets of previous endpoint configurations. Work with your Solutions Architect or Partner Manager to produce the correct configuration on the first try
Communications
- If the user asks Alexa to redial the last called number when their phone is not connected to the head unit, Alexa is silent rather than prompting the user to connect their phone.
Entertainment
- When music is playing, repeatedly pressing the “next” button to advance in the playlist restarts the current song.
- When using the LVC extension, if the application publishes the
MediaPlaybackRequestor.RequestMediaPlayback
AASB message before the Auto SDK Engine connects to Alexa cloud, media playback will not automatically resume as expected. The workaround is to wait for the connection to Alexa cloud to complete before publishing theRequestMediaPlayback
message. - There is no AASB message to indicate to Alexa that the user switched the media player UI on the head unit from an Alexa-integrated local media source, such as FM radio, to Alexa cloud-based music service provider. The only way to switch the audio context between the two player types is through voice interaction explicitly requesting a particular player.
- If your application cancels an Alexa interaction by sending the
AlexaClient.StopForegroundActivity
message to the Engine during music playback, the Engine might erroneously request your application to dismiss theNowPlaying
media info by publishing theTemplateRuntime.ClearPlayerInfo
message. Your application should not dismiss the media info in this scenario.
Local Voice Control
- In offline mode with LVC, after the user requests a list of POIs with an utterance such as “Alexa, find a nearby Starbucks”, Alexa does not recognize follow up requests such as "Alexa, select the first one" and does not display or read detailed information about the requested selection.
C++ sample app
- The sample app may fail to handle synchronous-style
AASB messages
within the required timeout to construct device context for Alexa. As a result, some utterances may not work as expected.