Tags: alexa/alexa-auto-sdk
Tags
Version 4.3.0 Alexa Auto SDK The Alexa Auto SDK is for automotive OEMs to integrate Alexa directly into vehicles. **v4.3.0** * v4.3 Released on 2023-06-15 **Breaking Changes** * AACS and the Alexa Auto App are no longer part of the Alexa Auto SDK. Please contact your Amazon SA partner for how to get newer version of AACS and Alexa Auto App. **Enhancements** * Added new Mobile Bridge module that provides platform-agnostic implementation of 'Connect via Phone' functionality to automatically use customer's phone data to provide connectivtiy to Alexa in vehicle. For additional details, please contact your SA partner. * Added `AlexaConfiguration::createMediaPlayerFingerprintConfig` for enabling Digital Rights Management (DRM) support * Updated `AudioOutput` interface to provide info required for playing DRM-protected audio. * Added the support to enable navigation to phone contact feature by uploading postal address while uploading phone contacts to cloud. *Note: the end-to-end feature to allow the user to navigate to a contact will be available once the cloud side changes are in place.* * Refactored metrics infrastructure and overhauled the implementation. **Resolved Issues** **Communications** * Fixed the issue that Alexa-to-Alexa calls do not work on Linux armv8 platforms **Local Voice Control** * Fixed the issue that Alexa responds with an error to the utterance "Play FM radio" and requests to tune to a station name. **Known Issues** **General** * The [Alexa Automotive UX guidelines](#https://developer.amazon.com/en-US/docs/alexa/alexa-auto/display-cards.html#dismiss-display-cards) specify when to automatically dismiss a `TemplateRuntime` display card for each template type. The Engine publishes the `TemplateRuntime` interface messages `ClearTemplate` and `ClearPlayerInfo` based on the timeouts configured in the `aace.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 for `NowPlaying` 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 the `THINKING` state `AlexaClient.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** * The dual-tone multi-frequency (DTMF) does work correctly when selecting the number 1. **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 the `RequestMediaPlayback` message. **Local Voice Control** * Some contacts in the addressbook are not resolved correctly in offline mode. **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. [Read the SDK Docs](https://alexa.github.io/alexa-auto-sdk/docs/)
Version 4.2.0 Alexa Auto SDK The Alexa Auto SDK is for automotive OEMs to integrate Alexa directly into vehicles. **v4.2.0** * v4.2.0 released on 2022-12-21 **Enhancements** **Auto SDK** * Added `MultiAgent` components in AVS Device SDK. All the AVS directives and events are tagged with assistant ID. With the new MultiAgent environment, agent-based metrics are also introduced. The metrics can now be filtered by assistants, programs, and sources. * When receiving `AlexaClient` messages, the payload of `DialogStateChanged` message will now have the ID of the assistant that the change is associated. * Disabled timers, alarms, and reminders by removing the `Alerts` AVS capability from the Engine. The corresponding `Alerts` AASB messages and Engine configuration are also removed. * The Alexa Auto SDK 3rd Party Wake Word (3PWW) feature provides OEMs an opportunity to enable support for 3rd party voice assistants (3PVA) such as Apple Siri on the same in-vehicle infotainment system alongside Alexa Custom Assistant (ACA)/Alexa wake words. * Added the AASB message `AudioPlayer.SetAsForegroundActivity`, which the application can use to tell the Auto SDK Engine that the Alexa `AudioPlayer` interface is the foreground media source the user sees on screen. The `SetAsForegroundActivity` message is useful to ensure VUI and GUI commands act on the `AudioPlayer` source for scenarios in which the user played an Alexa media source (e.g., Amazon Music), switched to a different Alexa-aware external media source like FM radio or a deep-linked media app, and then manually returned visual activity to the Alexa media screen. The Alexa Auto App is updated to use the new message in the Alexa `MediaSession`. * Updated the Alexa cloud retention period for address book storage from 24 hours to 30 days. Implementations can now reduce data usage by reducing the frequency of address book upload accordingly. * Updated the Auto SDK to use AVS Device SDK Version 1.26.0. For information about this version of AVS Device SDK, see the [AVS Documentation](https://developer.amazon.com/en-US/docs/alexa/avs-device-sdk-1-2x/release-notes.html#version-1260). **Alexa Auto App** * Renamed the AACS Sample App to Alexa Auto App. Any previous mentions of the name AACS Sample App should be treated the same as Alexa Auto App. * Added a landing page to Alexa Auto App. The landing page provides sample utterances for supported domains and UI to update the settings. * The Alexa Auto App has an updated UI for setup and settings screens. These improvements scale responsively for medium landscape screens (approximately 1300 x 900 resolution and screen size ranging from 1100dp to 1549dp). * Updated Alexa Auto App to post a [notification](https://developer.android.com/training/cars/notifications) to the Notification Center when Alexa delivers a notification to the user. The user must ask Alexa to read their notifications to hear the notification content. * Simplified building of the Alexa Auto App by reducing the number of build options during setup. * Added SMS features to Alexa Auto App. The user can ask Alexa to read unread messages, send a message to a phone number or contact, and reply to a message using the primary bluetooth connected mobile phone. * Removed the red voice chrome animation previously used when Alexa was not available. The voice chrome now uses the standard blue speaking animation as Alexa speaks an error prompt. **Resolved Issues** **Auto SDK** * Fixed an issue in which the Engine would not send an `AudioOutput.Resume` message to the client app in cases where the client has not yet responded to the previous `AudioOutput.Pause` message. This could cause a state where the SDK thinks the transient pause initiated for user and Alexa dialog never finished, preventing any further Alexa media from playing until the head unit restarts. * Fixed a race condition in `DoNotDisturb` capability agent that could cause a crash during Engine shutdown. * Fixed an issue in which Alexa speech did not play when the user asks to redial while their phone is disconnected. * Updated `MessageStream::write()` to return 0 when writing the data to the consumer fails rather than returning the data size. * Fixed issues in which the Engine did not send the `TemplateRuntime.ClearTemplate` message at the right time. * Pinned Conan package revisions of various dependencies to avoid sudden failures building Auto SDK. * Fixed an issue in which the Engine did not send `TemplateRuntime.ClearPlayerInfo` when the user signs out. * Fixed an issue in which the `Navigation.StartNavigation` AASB message did not include the correct POI details of the destination when the user selected the destination from the POI card shown on screen. Previously the “name” field in the template payload was populated with the address instead of the POI name. * Fixed an issue in which the local navigation skill produced a second, duplicate `TemplateRuntime.RenderTemplate` message for the `LocalSearchDetailTemplate1` card when the user started offline navigation with Alexa. * Fixed an issue in offline mode in which Alexa did not recognize followup requests like "select the first one" after the user requests a search for POIs or addresses. **Alexa Auto App** * Fixed various issues in the Alexa media session: * Rather than leaving the media session active and open indefinitely, the media session deactivates, stops its service, and removes the foreground service notification when media is no longer playing. The media service also sets the session to be inactive when the user signs out of their Alexa account or disables Alexa on the head unit. * The media session no longer reports error states when there is no player or sign-in error. The issue in which the error state could overtake a valid state of active media and remove all its supported controls from the session, breaking the media app UI and the instrument cluster or media widget display, is also resolved. * Previously, if the user played Alexa media and then switched to the Spotify app or a local media source, Alexa media could not resume with voice or button press after the user switched back to the Alexa media UI . This is resolved so the user can switch between the two types of Alexa-aware players and properly pause or resume the content they are viewing on screen. * The media session clears its playback data and stops playback when the customer signs out of their Alexa account on the head unit. Also resolved the issues that un-recoverably corrupted the state of the media session after user sign out. * Fixed issues in which the media session could report unexpected playback states to Auto SDK, causing problems such as not being able to resume properly when paused for an utterance or skipping to the next song unexpectedly. * Fixed an issue in which the Alexa Voice UI would remain open and transparent after the voice session ended. * Fixed an issue in which the points of interest display card remained open when navigation started. Previously, the user had to manually close the card. * Fixed an issue in which the wake word is recognized before the user signed in to their Alexa account when LVC is enabled. * Fixed an issue in which the “None” string in the Alexa communications settings was always displayed in English. * Fixed an issue in which asking Alexa to set the volume updated the volume on the head unit as expected, but Alexa would respond with the wrong value to subsequent voice requests like "Alexa, what's the volume?" * Fixed a crash when using local media source control when notification listener access was not granted. [Allowlisting](https://source.android.com/docs/core/permissions/perms-allowlist) the Alexa Auto App for privileged install permission [MEDIA_CONTENT_CONTROL](https://developer.android.com/reference/android/Manifest.permission#MEDIA_CONTENT_CONTROL) prior to installation is required by default, and notification listener access is no longer required to use local media source control. * Fixed an issue in which the user could not add an additional stop to the active navigation route because Alexa could not properly retrieve navigation context from the head unit. * Fixed an issue with offline calling in which Alexa would repeatedly prompt "Which phone number or contact do you want to call?" without ending the interaction if she could not resolve the user's requested contact name. * Fixed an external wake word engine integration issue. * Improved app stability **Known Issues** **Auto SDK** **General** * The [Alexa Automotive UX guidelines](#https://developer.amazon.com/en-US/docs/alexa/alexa-auto/display-cards.html#dismiss-display-cards) specify when to automatically dismiss a `TemplateRuntime` display card for each template type. The Engine publishes the `TemplateRuntime` interface messages `ClearTemplate` and `ClearPlayerInfo` based on the timeouts configured in the `aace.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 for `NowPlaying` 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 the `THINKING` state `AlexaClient.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** * The dual-tone multi-frequency (DTMF) does work correctly when selecting the number 1. * Alexa-to-Alexa calls do not work on Linux armv8 platforms **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 the `RequestMediaPlayback` message. **Local Voice Control** * Alexa responds with an error to the utterance "Play FM radio" and requests to tune to a station name. "Change to FM radio" and "Switch to FM radio" work as expected. * Some contacts in the addressbook are not resolved correctly in offline mode. **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. **Alexa Auto App** * If there is no internet connection when the user launches Alexa for the first time in the ignition cycle, the “No Network Connection” message displays momentarily and disappears. * The Alexa Auto App doesn’t reconnect to LVC when when the user switches the default assistant from Alexa to a different voice assistant and then back to Alexa. Alexa Auto App needs to be restarted (e.g., by a new ignition cycle) to reconnect to LVC. * Alexa can take up to 90 seconds to reconnect when lost network connection is restored. * If the user has two phones connected to the head unit and asks Alexa to read their SMS messages, the reply comes from the secondary phone instead of the primary phone. * When the user asks Alexa to read their messages after she has already read them, Alexa reads the same messages again instead of replying that there are no new messages to read. [Read the SDK Docs](https://alexa.github.io/alexa-auto-sdk/docs/)
Version 4.1.1 Alexa Auto SDK The Alexa Auto SDK is for automotive OEMs to integrate Alexa directly into vehicles. **v4.1.1** * v4.1.1 released on 2022-08-08 **Enhancements** * Improved Auto SDK AACS Sample App Setup and Settings UX. * Updated APL renderer app component, as well as dependent APL Viewhost Android libraries (AARs). It is highly recommended you update to release 4.1.1 for APL integrations. >**Note:** All Auto SDK 4.1 extensions are compatible with 4.1.1. **Resolved Issues** * Improved the settings menu by expanding the clickable area of settings, and added missing descriptions for menu items. * Fixed a race condition in which updating the Alexa language setting, and then navigating away from the menu page could crash the application without switching the language. * Fixed an issue in which the Alexa comms permission screen did not render properly. Improved the margin alignment issue in the setup screens. **Known Issues** **General** * The [Alexa Automotive UX guidelines](#https://developer.amazon.com/en-US/docs/alexa/alexa-auto/display-cards.html#dismiss-display-cards) specify when to automatically dismiss a `TemplateRuntime` display card for each template type. The Engine publishes the `TemplateRuntime` interface messages `ClearTemplate` and `ClearPlayerInfo` based on the timeouts configured in the `aace.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 for `NowPlaying` 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 the `THINKING` state `AlexaClient.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 the `RequestMediaPlayback` 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 the `NowPlaying` media info by publishing the `TemplateRuntime.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. **AACS sample app** * Sometimes the sample app will display an error page during sign-in if the user launched the app with the launcher icon. The recommended workaround is to set Alexa as the default assistant in the settings menu to guarantee AACS initializes properly before sign in. * APL Card is prematurely closed if there is music playing in the background and APL command `SpeakItem` or `SpeakList`is executed. * The voice interaction UI does not match the automotive UX guidelines for touching the screen during the interaction. The UX guidelines state that the interaction should continue if the user taps or scrolls, but the sample app cancels the interaction when the user taps or scrolls. * The volume Alexa uses to read a shopping list is louder than the volume set for other Alexa responses. * When the device has internet disconnected and the user sets the system language to a language not supported by Alexa, the sample app does not always display the language selection screen automatically. * When the user revokes Alexa permission to use the microphone and then re-enables the permission, Alexa does not respond to utterances until the user restarts the app. * If an alert is going off while Alexa is speaking, the timer audio cancels the Alexa speech. timer is going off while Alexa is speaking, the timer audio cancels the Alexa speech. **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. [Read the SDK Docs](https://alexa.github.io/alexa-auto-sdk/docs/)
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](../explore/features/alexa/FeatureDiscovery.md). * 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](../explore/features/core/index.md) 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: * [Android NDK r21e](https://github.com/android/ndk/wiki/Changelog-r21) * [Curl 7.81.0](https://curl.se/changes.html#7_81_0) * [SQLite 3.37.2](https://www.sqlite.org/releaselog/3_37_2.html) * 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 the `OpenSSL` 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](../native/building.md) 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 the `ShowAlternativeRoutesFailed` event. Additionally added the `NOT_NAVIGATING` error code to the `Navigation 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](#https://developer.amazon.com/en-US/docs/alexa/alexa-auto/display-cards.html#dismiss-display-cards) specify when to automatically dismiss a `TemplateRuntime` display card for each template type. The Engine publishes the `TemplateRuntime` interface messages `ClearTemplate` and `ClearPlayerInfo` based on the timeouts configured in the `aace.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 for `NowPlaying` 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 the `THINKING` state `AlexaClient.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 the `RequestMediaPlayback` 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 the `NowPlaying` media info by publishing the `TemplateRuntime.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. [Read the SDK Docs](https://alexa.github.io/alexa-auto-sdk/docs/)
Version 4.0.0 Alexa Auto SDK The Alexa Auto SDK is for automotive OEMs to integrate Alexa directly into vehicles. **v4.0.0** * v4.0.0 released on 2021-12-15 **Enhancements** * Deprecated the C++ and Java platform interfaces in favor of an asynchronous message-based API. Auto SDK client applications use the new `MessageBroker` to publish and subscribe to Alexa Auto Services Bridge (AASB) messages. The C++ sample app is refactored to use the new API to provide a reference implementation for Linux platforms. The Alexa Auto Client Service (AACS) sample app provides the reference implementation for Android platforms. See the [Auto SDK Migration Guide](./MIGRATION.md) for help migrating your application to use the new API. * Enhanced the Auto SDK build system with the Conan package manager. The new build system introduces modular builds, better dependency management, and simpler build artifacts. The Auto SDK build system includes the Auto SDK Builder Tool script, which wraps the Conan build commands with a simple interface similar to the previous version of Auto SDK Builder. See the [Build Alexa Auto SDK documentation](./BUILDING.md) for details about the build system and the [Migration Guide](./MIGRATION.md) for help migrating your build to the new version of Builder Tool. * Extended the features of Alexa Presentation Language (APL) support for automotive. The `APL` module provides messages to report vehicle properties such as the display theme, driving state, and ambient light conditions. The property settings affect how APL documents render on screen; for example, some APL content is automatically hidden when the vehicle starts moving, and the display contrast updates with the day or night mode setting. Auto SDK 4.0 supports APL 1.9. For more information about the Auto SDK `APL` interface, see the [APL module documentation.](./modules/apl/README.md) * Added the `CustomDomain` interface, which establishes a bidirectional communication channel between your Auto SDK client application and your custom cloud skill. `CustomDomain` includes messages for exchanging directives, events, and context between the vehicle and your skill, achieving a fully customizable experience. For more information about the Auto SDK `CustomDomain` interface, See the [Custom Domain module documentation.](./modules/custom-domain/README.md) * Added the `MediaPlaybackRequestor` interface, which enables Alexa to play the user’s favorite media content as soon as they start their vehicle. `MediaPlaybackRequestor` simplifies content selection for the user by removing the need for the user to use buttons or voice commands to resume the Alexa media content that was playing when they stopped the vehicle. For more information about the Auto SDK `MediaPlaybackRequestor` interface, See the [Alexa module documentation.](./modules/alexa/README.md) * Extended the `AudioOutput` interface and added configuration to allow ducking Alexa media. Your application can use this feature for enhanced control of Alexa content audio focus according to your platform requirements. For more information about audio ducking, see the [Core module documentation.](./modules/core/README.md) * Updated the Auto SDK to use AVS Device SDK Version 1.25.0. For information about this version of AVS Device SDK, see the [AVS Device SDK release notes.](https://developer.amazon.com/en-US/docs/alexa/avs-device-sdk/release-notes.html#version-1250) * Added LVC support for Alexa Custom Assistant specialized handoffs. You can configure the default fallback and self-introduction prompts for your custom assistant while offline. For more information, see the `Alexa Custom Assistant` extension documentation. * Integrated the Auto SDK Conan build system enhancements to AACS and the AACS sample app. You can use a single Gradle command to build AACS and the AACS sample app. For build instructions, see the [AACS documentation.](./aacs/android/README.md) * Added the following enhancements to the AACS sample app: * **Additional languages—** The AACS sample app supports the following languages: *US English* (`en-US`), *Australian English* (`en-AU`), *Canadian English* (`en-CA`), *Indian English* (`en-IN`), *British English* (`en-GB`), *German* (d`e-DE`), *Spanish* (`es-ES`), *Mexican Spanish* (`es-MX`), *US Spanish* (`es-US`), *French* (`fr-FR`), *Canadian French* (`fr-CA`), *Hindi* (`hi-IN`), *Italian* (`it-IT`), *Japanese* (`ja-JP`), and *Brazilian Portuguese* (`pr-BR`). The sample app language setting matches the device’s system language setting and syncs the with Alexa as long as the setting is in the supported language list. If Alexa does not support the system language, the sample app GUI defaults to en-US and presents a list of languages for the user to choose from. Once the user selects the language override, the system language does not sync with the sample app again until the user logs out or disables Alexa. * **Network error prompts—** You can configure the sample app to provide feedback to the user when Alexa cannot respond due internet connection issues. The feedback is a voice prompt or an error screen depending on the user action. * **Alexa app assets—** The sample app can show Alexa logos (assets) on the setup screen and display cards instead of showing placeholder assets. * **Comms UI improvements—** Updated the contacts uploading logic in the `Comms UI` AACS app component to ensure the sample app only uploads the contacts for the primary phone. * Updated the AACS Telephony library to get the outgoing phone account using the Android standard API `getDefaultOutgoingPhoneAccount`. AACS Telephony no longer sends an account query intent when receiving the `PhoneCallController.Dial` message from the Auto SDK Engine. * Added a new intent `com.amazon.aacstelephony.bluetooth.connectionCheckCompleted`, which AACS Telephony service broadcasts when it finishes the initial bluetooth connection check. * Updated the `alexa-auto-lwa-auth` app component to use the `Authorization` Auto SDK interface for CBL authorization. **Other changes** * Moved several source code directories within the `aac-sdk` root directory to support the enhanced build system. * Removed `aac-sdk/platforms/android/`. The deprecated Java platform interfaces and JNI are in their respective modules. For example, the Alexa module Java interfaces and JNI are moved from `aac-sdk/platforms/android/modules/alexa/` to `aac-sdk/modules/alexa/android/` * Removed `aac-sdk/extensions/aasb/` because using AASB messages with MessageBroker is the primary Auto SDK API. AASB code for each module is in the respective module directory. For example, the AASB code for the Alexa module is in `aac-sdk/modules/alexa/aasb/`. Note that the AASB message headers to include in your application are not in this directory since they are generated as part of the Auto SDK build output. * Moved `aac-sdk/extensions/system-audio/` to `aac-sdk/modules/system-audio/` * Moved `aac-sdk/extensions/bluetooth/` to `aac-sdk/modules/bluetooth/` * Moved `aac-sdk/extensions/loopback-detector/` to `aac-sdk/modules/loopback-detector/` * Moved `aac-sdk/platforms/android/alexa-auto-client-service/` to `aac-sdk/aacs/android/` * Moved `aac-sdk/platforms/android/alexa-auto-client-service/app-components/` to `aac-sdk/aacs/android/app-components/` * Moved `aac-sdk/samples/android-aacs-sample-app/` to `aac-sdk/aacs/android/sample-app/` * Moved `aac-sdk/platforms/android/alexa-auto-client-service` `/commonutils/` , `/ipc/`, and `/constants/` to `aac-sdk/aacs/android/common/` * Moved AACS media player files to a directory `audioOutput` within `aac-sdk/platforms/android/alexa-auto-client-service/service/` * Moved the Media App Command and Control Android library from `aac-sdk/platforms/android/maccandroid/` to `aac-sdk/aacs/android/service/modules/maccandroid/` * In the LVC extension, the `LocalSearchProvider` AASB messages now have topic `LocalNavigation`. For example, the existing message `LocalSearchProvider.SearchRequest` in 3.3 is `LocalNavigation.SearchRequest` in 4.0. The next major release version of Auto SDK will change the topic back to `LocalSearchProvider`. * Deprecated the option to build AACS as an APK. Starting from Auto SDK 4.0, you can only build AACS as an AAR. * Removed the Android sample app based on the Java platform interfaces. The AACS sample app demonstrates using Auto SDK on Android. **Resolved Issues** * Fixed an issue preventing the generic `DEFAULT` type `LocalMediaSource` from working in offline mode with LVC. * Fixed a race condition in `SpeechRecognizer` in which enabling wake word detection immediately after calling `startCapture()` resulted in a missing call to `stopAudioInput()` when wake word detection was later disabled. * Fixed a deadlock that could occur in an application that uses the deprecated `AuthProvider` interface and starts, stops, and restarts the Engine in quick succession. * Fixed an issue in which Spotify playback commands were delayed on QNX. * Fixed an issue in which the Engine added malformed `PhoneCallController` context to `PhoneCallController` events sent to Alexa. * Fixed an issue in which AACS did not acquire audio focus prior to playing Alexa speech. **Known Issues** **General** * If you do not specify the `deviceSettings.locales` field of the Alexa module configuration, the Engine automatically declares support for the following locale combinations: ["en-US", "es-US"], ["es-US", "en-US"], ["en-IN", "hi-IN"], ["hi-IN", "en-IN"], ["fr-CA", "en-CA"], ["en-CA", "fr-CA"]. The Engine does not automatically declare support for default locale combinations if you assign an empty value to the `locales` field. * The Engine does not persist the `aace.alexa.wakewordEnabled` Engine property setting across device reboots. Your application has to persist the setting and set the property again at each Engine start. AACS implements persisting this property and hence does not have this issue. * If your Linux platform does not use AVX2 instructions, the Amazonlite wake word library initialization causes an illegal instruction error. * When using LVC and stopping the Engine, the `AlexaClient` connection status remains `CONNECTED` because the connection to LVC is not disabled. Your application should not accept user utterances while the Engine is stopped despite the connection status showing `CONNECTED`. * The [Alexa Automotive UX guidelines](https://developer.amazon.com/en-US/docs/alexa/alexa-auto/display-cards.html#dismiss-display-cards) specify when to automatically dismiss a `TemplateRuntime` display card for each template type. The Engine publishes the `TemplateRuntime` interface messages `ClearTemplate` and `ClearPlayerInfo` based on the timeouts configured in the `aace.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 for `NowPlaying` cards. You must implement your application’s dismissal logic for display cards and media info accordingly. * When the user requests to view their list of timers on an APL-enabled application, they cannot use an utterance such as “Alexa, scroll up” to scroll through the list shown on the APL card. * 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 the `THINKING` state `AlexaClient.DialogStateChanged` transition. * On the Poky Linux 32-bit platform, the C++ sample app shuts down with an error on launch. * In offline mode with LVC, you might not see the `AlexaClient.DialogStateChanged` `THINKING` state transition if the user invokes Alexa with hold-to-talk and your application provides the audio input data in one large chunk. * In offline mode with LVC, Alexa gets stuck in the `THINKING` state and does not respond after changing the locale setting. The state recovers after a few minutes. * The `CBL` module uses a backoff when refreshing the access token after expiry. If the internet is disconnected when the Engine attempts the refresh, it might take up to a minute to refresh the token after the internet connection is restored. * Some `Core` module messages published by the Engine do not have a corresponding message for the application to report a handling failure. For example, if the user invokes Alexa by tap-to-talk, and the application cannot handle the `AudioInput.StartAudioInput` message, the Engine assumes the application handled the message properly and will provide audio data. As a result, the Engine state and application state might become out of sync. The affected messages are the following: * `AudioInput`: * `StartAudioInput` * `AudioOutput`: * `SetPosition` * `VolumeChanged` * `MutedStateChanged` **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** * Alexa does not understand DTMF utterances that include letters. For example, "press A" and "dial 3*#B" do not result in the correct DTMF directives. * The user might experience unexpected results by trying to dial or place calls in the following ways: * Using utterances that include “double”, “triple”, “hundred”, or “thousand.” For example, calling a number such as 1-800-xxx-xxxx by saying “Alexa call one eight *double oh*...” * Pressing special characters such has “#” or “*” by saying "Alexa press * #." * The user cannot accept or reject incoming Alexa-to-Alexa calls by voice while playing a skill with extended multi-turn dialogs, such as Jeopardy or Skyrim. **Entertainment** * If the user requests Alexa to read notifications while music is playing, they might hear the music play for a split second between the end of one notification and the start of the next. * When an external media player authorization is in progress during Engine shutdown, a rare race condition might cause the Engine to crash. * 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 the` NowPlaying` media info by publishing the `TemplateRuntime.ClearPlayerInfo` message. Your application should not dismiss the media info in this scenario. * When using the `System Audio` module, Audible and Amazon music might not play correctly on i.MX8 boards. **Local search and navigation** * 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 followup requests such as "Alexa, select the first one" and does not display or read detailed information about the requested selection. **AACS** * If you do not use the default audio output implementation (i.e., your application handles `AudioOutput` AASB messages), your application will not receive the `AudioOutput.Stop` message if Alexa media is playing when AACS shuts down. As a workaround, your application can listen to `AASB.StopService` or adopt `AACSPinger` to listen to the `STOPPED` state of AACS and stop the media accordingly. **AACS Sample App** * The AACS Sample App does not show the language selection screen when the app is built with Preview Mode. * The AACS Sample App only shows the language selection screen if there is a language mismatch with the system language setting at the first app launch. [Read the SDK Docs](https://alexa.github.io/alexa-auto-sdk/)
Version 3.3.0 Alexa Auto SDK The Alexa Auto SDK is for automotive OEMs to integrate Alexa directly into vehicles. **v3.3.0** * v3.3.0 released on 2021-09-30 **Enhancements** * Added the `DeviceUsage` platform interface to provide the Alexa application network usage data to the Auto SDK Engine. The Auto SDK Engine emits this data as a metric to Amazon if Auto SDK is built with the `Device Client Metrics` extension. For more information, see the Core module README for [C++](./modules/core/README.md#providing-network-usage-data-to-auto-sdk) or [Android](./platforms/android/modules/core/README.md#providing-network-usage-data-to-auto-sdk). * Extended the features of the `Local Navigation` module for the `Local Voice Control (LVC)` extension. The `LocalSearchProvider` platform interface now enables you to provide customers with offline navigation to street addresses, cities, and neighborhoods in addition to the existing support for local search and navigation to points of interest. See the Local Navigation module README for information about integrating the features. >**Note:** There are updates to the `LocalSearchProvider` APIs. See the [Migration Guide](./MIGRATION.md) for details. * Added a new generic `DEFAULT` media source to the list of sources supported by the `LocalMediaSource` platform interface. The DEFAULT source can be used for voice playback control of any arbitrary media sources on the infotainment system outside of deep-linked MACC applications using the `ExternalMediaAdapter` interface and existing sources supported by name through the `LocalMediaSource` interface. For details about integrating a default media source, see the Alexa module README for [C++](./modules/alexa/README.md) or [Android](./platforms/android/modules/alexa/README.md). * Added offline LVC support for tuning to station names on terrestrial radio and SiriusXM. E.g., “Play CNN on Sirius XM” and “Play KISS FM”. This feature is already available in online mode. * Enhancements for AACS: * Added an app component called `alexa-auto-carcontrol` that deeply integrates Auto SDK car control features into the Android Automotive OS. For more information about AACS deep integration to Car Control, please refer to this [README](./platforms/android/app-components/alexa-auto-carcontrol/README.md). * Added an enhancement in which AACS can automatically sync Alexa’s timezone and locale properties with the device system settings when you set the `syncSystemPropertyChange` field to true in your AACS configuration file. If you set the field to false or omit it, you still have flexibility to change the properties in your own implementation. * Enhancements for AACS Sample App: * Added a location sharing consent screen in Alexa setup and settings wherein the user has the option to enable or disable location sharing. * Added support for rendering for `TemplateRuntime` display cards for the weather domain. * Added support for rendering `Amazon Presentation Language (APL)` documents. * Added media player transport control improvements. For example, shuffle and loop transport controls are added, and disabled transport controls are displayed. * Added support for setup and setting menu specific to the Alexa Custom Assistant extension. **Resolved Issues** * Android 11 requires the attribute `android:foregroundServiceType` to be defined in services that require permissions such as microphone and location. This is added to the AACS Android Manifest file. Also, the `compileSdkVersion` and `targetSdkVersion` to are updated to 30 in `build.gradle`. * Added a `UserIdentity` value in AACS `AuthStatus` when the user finishes CBL login. * Made the 'stateOrRegion' field optional in the AACS `StartNavigation` directive JSON parser. * Implemented the AASB `SetUserProfile` message in the CBL module to ensure the user email and username will be sent to the client application after user login when `enableUserProfile` is set to true. * Fixed an issue that blocked a valid transition from the `THINKING` to `LISTENING` `AlexaClient` dialog states. * Updated the `PhoneCallControllerCapabilityAgent` to include context in `PhoneCallController` events per the `PhoneCallController` API specification. * Fixed a memory leak observed during Engine shutdown in the `Local Voice Control` extension. * Fixed a rare deadlock issue during Engine stop and start when using the `AuthProvider` interface. * Fixed an issue in which the Engine erroneously allowed 3,000 coordinates in the "shapes" array of navigation state queried via `Navigation::getNavigationState()`. The limit is updated to 100 coordinates. **Known Issues** * General * If the "locales" field of the "deviceSettings" node of the Alexa module configuration JSON is not specified, the Engine automatically declares support for the following locale combinations: ["en-US", "es-US"], ["es-US", "en-US"], ["en-IN", "hi-IN"], ["hi-IN", "en-IN"], ["fr-CA", "en-CA"], ["en-CA", "fr-CA"]. The Engine does not declare support for locale combinations if the "locales" field is assigned an empty value. * The `wakewordEnabled` property is not persistent across device reboots. If you use AACS, however, this issue does not occur. * For Linux platforms, if your hardware does not use AVX2 instructions, the wake word library initialization causes an illegal instruction error. * When using LVC and calling Engine::stop(), the AlexaClient connection status remains CONNECTED because the connection to LVC is not disabled. Your implementation should not accept user utterances while the Engine is stopped despite the connection status showing CONNECTED. * The [automotive HMI guidelines](https://developer.amazon.com/en-US/docs/alexa/alexa-auto/display-cards.html#dismiss-display-cards) for display cards state that actionable display cards should be dismissed automatically after 30 seconds, and non-actionable display cards should be dismissed automatically after 8 seconds. This guideline is not descriptive enough since it does not clarify what is actionable and non-actionable content. The UX team is working on correcting the guideline to specify specific template types. The current automatic dismissal time for all Template Runtime display cards is 8 seconds. * 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 a set in the cloud. 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, endpoint 1 from set A remains in the cloud and 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 * DTMF utterances that include the letters "A", "B", "C", or "D" (for example "press A" or "dial 3*#B") are ignored. * Calling numbers such as 1-800-xxx-xxxx by using utterances such as “Alexa call one eight double oh...” may return unexpected results. Similarly, when you call numbers by using utterances that include "triple," "hundred," and "thousand," or press special characters such as # or * by saying "Alexa press *#", you may experience unexpected results. We recommend that your client application ignore special characters, dots, and non-numeric characters when requesting Alexa to call or press digits. * A user playing any skill with extended multi-turn dialogs (such as Jeopardy or Skyrim) cannot use voice to accept or reject incoming Alexa-to-Alexa calls. * Entertainment * A user playing notifications while music is playing hears the music for a split second between the end of one notification and the start of the next. * The word, "line-in," in an utterance is sometimes misinterpreted as "line" or other words. For example, if the user says, "Switch to line-in," the misinterpretation of "line-in" might cause an incorrect response. * When an external player authorization is in progress at the exact moment of shutdown, a very rare race condition might occur, causing the Engine to crash. * If your application displays the NowPlaying `TemplateRuntime` display card when Alexa plays media, the card might be erroneously dismissed by the Auto SDK Engine with a call to `TemplateRuntime::clearPlayerInfo()` if your application calls `AlexaClient::stopForegroundActivity()` to cancel an Alexa interaction. For example, the user might initiate an Alexa interaction during music playback and then cancel it by pressing a cancel button while Alexa is listening, thinking, or speaking. The media display card should not be dismissed in this scenario. * The generic `DEFAULT` `LocalMediaSource` type is not supported offline with LVC. If user gives a generic playback control request like "Alexa, play" when the Alexa application is operating in the offline mode with LVC, Alexa responds "Sorry, something went wrong". Other named players like USB work as expected in the offline mode. * Authentication * The CBL module uses a backoff when refreshing the access token after expiry. If the internet is disconnected when the refresh is attempted, it could take up to a minute to refresh the token when the internet connection is restored. * Local Search and Navigation * When using LVC in offline mode, after requesting a list of POIs (e.g., "find Starbucks nearby"), Alexa does not recognize utterances like "select the first one" and does not display or read detailed information about the requested selection. * AACS * For some platform interface APIs in the Core module, when an application fails to handle a directive, there is no way to report the failure to the Engine. This is because AASB assumes that the application always handles messages correctly. When AASB incorrectly reports how the application handles the message, the Engine state might become inconsistent with the application state. For example, suppose the Engine sends a directive to the application to set the audio volume but the application fails to make the change. AASB does not report the failure to the Engine. As a result, the Engine's and the application's settings become out of sync. The following list shows the affected APIs: * `AudioInput`: * `startAudioInput()` * `AudioOutput`: * `setPosition(int64_t position)` * `volumeChanged(float volume)` * `mutedStateChanged(MutedState state)` * If you are not using the default audio output implementation (i.e. your application handles `AudioOutput` AASB messages) and even though you are playing the Alexa pushed media content, `Stop` message would not be sent from AACS when AACS shuts down. e.g. If you are playing an audio stream for AmazonMusic, if AACS is stopped, [AASB `AudioOutput.Stop` message](extensions/aasb/docs/AudioOutput/StopMessage.html) would not be received. As a result, the media playing from your application would not be stopped. This issue will be fixed in the next release. As a workaround, your application can listen to `[AASB.StopService](`extensions/aasb/docs/AASB/StopServiceMessage.html`)` message or adopt `AACSPinger` (See [README](platforms/android/alexa-auto-client-service/README.md#checking-aacs-connection-state)) to listen to the `STOPPED` state of AACS and stop the media accordingly. [Read the SDK Docs](https://alexa.github.io/alexa-auto-sdk/)
Version 3.2.1 Alexa Auto SDK The Alexa Auto SDK is for automotive OEMs to integrate Alexa directly into vehicles. **v3.2.1** * v3.2.1 released on 2021-08-06 **Enhancements** * The Connectivity module supports additional APIs, which enable the voice up-sell conversation between the user and Alexa to activate either a trial data plan or a paid subscription plan. Your implementation should call `sendConnectivityEvent` to notify the Engine of the data plan type. To respond, the Engine calls `connectivityEventResponse`. * You can customize the Address Book module with the `cleanAllAddressBooksAtStart` field in the Engine configuration, which specifies whether address books are removed each time the Engine starts. >**Note:** All Auto SDK 3.2 extensions are compatible with 3.2.1. **Resolved Issues** In v3.2.0, if you use the `startCapture` API with an external wake word engine, wake words cannot be detected correctly. In v3.2.1, wake word detection works properly with external wake word engines. **Known Issues** * General * If the "locales" field of the "deviceSettings" node of the Alexa module configuration JSON is not specified, the Engine automatically declares support for the following locale combinations: ["en-US", "es-US"], ["es-US", "en-US"], ["en-IN", "hi-IN"], ["hi-IN", "en-IN"], ["fr-CA", "en-CA"], ["en-CA", "fr-CA"]. The Engine does not declare support for locale combinations if the "locales" field is assigned an empty value. * The `wakewordEnabled` property is not persistent across device reboots. If you use AACS, however, this issue does not occur. * For Linux platforms, if your hardware does not use AVX2 instructions, the wake word library initialization causes an illegal instruction error. * 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 a set in the cloud. 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, endpoint 1 from set A remains in the cloud and 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 * DTMF utterances that include the letters "A", "B", "C", or "D" (for example "press A" or "dial 3*#B") are ignored. * Calling numbers such as 1-800-xxx-xxxx by using utterances such as “Alexa call one eight double oh...” may return unexpected results. Similarly, when you call numbers by using utterances that include "triple," "hundred," and "thousand," or press special characters such as # or * by saying "Alexa press *#", you may experience unexpected results. We recommend that your client application ignore special characters, dots, and non-numeric characters when requesting Alexa to call or press digits. * A user playing any skill with extended multi-turn dialogs (such as Jeopardy or Skyrim) cannot use voice to accept or reject incoming Alexa-to-Alexa calls. * Entertainment * A user playing notifications while music is playing hears the music for a split second between the end of one notification and the start of the next. * The word, "line-in," in an utterance is sometimes misinterpreted as "line" or other words. For example, if the user says, "Switch to line-in," the misinterpretation of "line-in" might cause an incorrect response. * When an external player authorization is in progress at the exact moment of shutdown, a very rare race condition might occur, causing the Engine to crash. * If your Android app displays the NowPlaying Display Card whenever Alexa plays media, the card might be erroneously dismissed. For example, during music playback, if a user invokes Alexa, putting Alexa in LISTENING, THINKING, or SPEAKING state, and then cancels the Alexa session by tapping the Cancel button, the NowPlaying card is dismissed. A media Display Card should not be automatically dismissed in this scenario. * Authentication * The CBL module uses a backoff when refreshing the access token after expiry. If the internet is disconnected when the refresh is attempted, it could take up to a minute to refresh the token when the internet connection is restored. * AACS * For some platform interface APIs in the Core module, when an application fails to handle a directive, there is no way to report the failure to the Engine. This is because AASB assumes that the application always handles messages correctly. When AASB incorrectly reports how the application handles the message, the Engine state might become inconsistent with the application state. For example, suppose the Engine sends a directive to the application to set the audio volume but the application fails to make the change. AASB does not report the failure to the Engine. As a result, the Engine's and the application's settings become out of sync. The following list shows the affected APIs: * `AudioInput`: * `startAudioInput()` * `AudioOutput`: * `setPosition(int64_t position)` * `volumeChanged(float volume)` * `mutedStateChanged(MutedState state)` [Read the SDK Docs](https://alexa.github.io/alexa-auto-sdk/)
Version 2.1.1 Alexa Auto SDK The Alexa Auto SDK is for automotive OEMs to integrate Alexa directly into vehicles. **v2.1.1** * v2.1.1 released on 2021-07-29 >**Note:** For Android targets, the remote build flavor is not supported because the pre-built default platform AARs for the default Auto SDK modules and the sample-core AAR are not available from the JCenter repo. The information about the remote build flavor in the [Android Sample App README](./samples/android/README.md) is not applicable. >**Note:** All Auto SDK 2.1 extensions are compatible with 2.1.1. **Resolved Issues** This version resolved a race condition during music playback that could cause the `PlaybackStarted` event to be delayed for eight seconds. **Known Issues** * The Alexa cloud currently returns an `INVALID_REQUEST_EXCEPTION` or `INTERNAL_SERVICE_EXCEPTION` in response to any navigation event sent by the Auto SDK. You may see a harmless error/exception in the logs. * The CBL module uses a backoff when refreshing the access token after expiry. If internet is disconnected when the refresh is attempted, it could take up to a minute for the token to refresh when the internet connection is restored. * If the user deregisters from the companion app, Alexa does not prompt or notify the clients and does not reject the ping packet. * If you log out and log in, the Do Not Disturb (DND) state is not synchronized with Alexa. * When you cancel login with `CBL::cancel()`, the CBL state does not change to stopped. * Calling numbers such as 1800xxxxxxx using utterances such as “Alexa call one eight double oh...” may return unexpected results. Similarly, calling numbers using utterances that include "triple", "hundred" and "thousand" and pressing special characters such as # or* using utterances such as "Alexa press *#" may return unexpected results. Therefore we recommend that your client application ignore special characters, dots, and non-numeric characters when requesting Alexa to call or press digits. * The Engine may sometimes stop abruptly on shutdown due to a race condition. However, since shutdown is triggered when the car ignition is turned off, no direct customer impact is expected. * The Engine may hang during shutdown if it is shut down while TTS is being played or read. Therefore, you should avoid calling the shutdown method while loading or playing SpeechSynthesizer audio. * When online, Alexa does not recognize the utterance “Switch to line In.” * A user playing Jeopardy or Skyrim cannot accept or reject incoming Alexa-to-Alexa calls using voice. * If the local timezone of your device differs from the timezone that was configured through the Alexa companion app, the user may experience unexpected behavior. For example, if your device shows 12pm PST, but the device on the Alexa companion app is configured with an EST timezone, then asking "Alexa set an alarm for 1pm today," will return, "Sorry I can't set alarms in the past". * When pausing and resuming music, volume adjustments are lost. * A user playing notifications while music is playing will hear the music for a split second between the end of one notification and the start of the next. * The External Media Player (EMP) Engine implementation does not wait for a dialog channel focus change to complete, such as after TTS, before executing an EMP directive, such as playing the CD player. As a result, you may see an unexpected sequence of Local Media Source playControl() method invocations such as play, then pause, followed by play again in quick succession.
Version 2.3.1 Alexa Auto SDK The Alexa Auto SDK is for automotive OEMs to integrate Alexa directly into vehicles. **v2.3.1** * v2.3.1 released on 2021-07-23 **Enhancements** Added support for specifying the HTTP proxy server address and custom HTTP headers that are passed to the proxy. For information about specifying the proxy server address and header, see the Core module README for [C++](./modules/core/README.md) or for [Android](./platforms/android/modules/core/README.md). To test the HTTP proxy configuration, use the Android Sample App. The C++ Sample App does not support testing the configuration. >**Note:** For Android targets, the remote build flavor is not supported because the pre-built default platform AARs for the default Auto SDK modules and the sample-core AAR are not available from the JCenter repo. The information in the [Android Sample App README](./samples/android/README.md#option-1-use-the-pre-built-platform-aars-remote-build-flavor) is not applicable. >**Note:** All Auto SDK 2.3 extensions are compatible with 2.3.1. **Known Issues** * General * A user barging in when music is playing sometimes hears the Alexa response to the barge-in request and the music at the same time if System Audio extension is used. * If the "locales" field of the "deviceSettings" node of the Alexa module configuration JSON is not specified, the Engine automatically declares support for the following locale combinations: ["en-US", "es-US"], ["es-US", "en-US"], ["en-IN", "hi-IN"], ["hi-IN", "en-IN"], ["fr-CA", "en-CA"], ["en-CA", "fr-CA"]. The Engine does not declare support for locale combinations if the "locales" field is assigned an empty value. * Car Control * For car control, there is a limit of two Device Serial Numbers (DSN) per account or Customer ID (CID). Limit the number of devices for testing with a single account accordingly. If you use the Android sample app, be sure to configure a specific DSN. * It can take up to 20 seconds from the time of user login to the time Alexa is available to accept utterances. The cloud uses this time to ingest the car control endpoint configurations sent by Auto SDK after login. * If you configure the Auto SDK Engine and connect to Alexa using a set of endpoint configurations, you cannot delete any endpoint in a set in the cloud. 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, endpoint 1 from set A remains in the cloud and 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. * Car control utterances that are variations of supported utterances but do not follow the supported utterance patterns return errors. Examples include “please turn on the light in the car” instead of the supported “turn on the light“, and ”put on the defroster“ or “defrost the windshield” instead of the supported ”turn on the defroster”. * The air conditioner endpoint supports only Power Controller and Mode Controller capabilities, not Range Controller for numeric settings. * Communications * A user request to send an SMS to an Alexa contact results in an Alexa-to-Alexa message instead. However ‘send message’ instead ‘send SMS’ to a contact works. * When using LVC in online mode, users can redial a call when the phone connection state is OFF. * DTMF utterances that include the letters "A", "B", "C", or "D" (for example "press A" or "dial 3*#B") are ignored. * Calling numbers such as 1-800-xxx-xxxx by using utterances such as “Alexa call one eight double oh...” may return unexpected results. Similarly, when you call numbers by using utterances that include "triple," "hundred," and "thousand," or press special characters such as # or * by saying "Alexa press *#", you may experience unexpected results. We recommend that your client application ignore special characters, dots, and non-numeric characters when requesting Alexa to call or press digits. * A user playing any skill with extended multi-turn dialogs (such as Jeopardy or Skyrim) cannot use voice to accept or reject incoming Alexa-to-Alexa calls. * Entertainment * A user playing notifications while music is playing hears the music for a split second between the end of one notification and the start of the next. * The user must enunciate “line-in” in utterances targeting the “LINE_IN” Local Media Source type in order for Alexa to recognize the intent. * When an external player authorization is in progress at the exact moment of shutdown, a very rare race condition might occur, causing the Engine to crash. * On QNX, when a portion of music on Spotify is skipped, either by the user saying "Skip forward" or by the user skipping to a different song, the volume is reset to the default level. * Authentication * The CBL module uses a backoff when refreshing the access token after expiry. If the internet is disconnected when the refresh is attempted, it could take up to a minute to refresh the token when the internet connection is restored. * If you log out and log in, the client-side Do Not Disturb (DND) state may not be synchronized with the Alexa cloud.
Version 3.2.0 Alexa Auto SDK The Alexa Auto SDK is for automotive OEMs to integrate Alexa directly into vehicles. **v3.2.0** * v3.2.0 released on 2021-05-19 **Enhancements** * Added the `DeviceSetup` platform interface that handles events and directives related to device setup during or after an out-of-the-box experience (OOBE). After the user login, Alexa is informed that device setup is complete and starts the on-boarding experience, for example, by starting a short first-time conversation. For more information, see the Alexa module README for [C++](./modules/alexa/README.md) or [Android](./platforms/android/modules/alexa/README.md). * Added support in the Connectivity module to provide the network identifier from the vehicle to Alexa, which enables automakers to offer full connectivity plans to customers. For connectivity status, the module supports sending the version of the terms and conditions through a field called `termsVersion`. Also, the `termsStatus` field accepts `DEFERRED`, which means Alexa can remind users to respond to the terms and conditions at a later time. * Added the Mobile Authorization extension, which enables applications running on the vehicle's head unit to simplify the login experience. To log in to Alexa, the user uses the Alexa mobile app on a paired smartphone, instead of opening a web browser and entering a code. * Added the Bluetooth extension, which allows the Alexa Auto SDK to connect to devices through the Bluetooth Classic or Bluetooth Low Energy (BLE) protocol. * Added the Geolocation extension, which provides geolocation consent support. The user can grant consent to location sharing with Alexa from your application. * Added the `locationServiceAccessChanged(LocationServiceAccess access)` API in the `LocationProvider` interface, which allows the Engine not to query the device location when the location service access is turned off on the device. * Added the APL Render module, which enables APL rendering capabilities in an Android application. >**Note:** This module is for you to experiment with APL document rendering on an automotive device. Do not use the module to render APL documents in a production vehicle. * Added support in the Address Book module for a phonetic field. The phonetic field is required for resolving the name of a contact or navigation favorite if the name uses Kanji characters in Japanese. * Updated the Docker container for the Auto SDK builder script to use OpenSSL 1.1.1k by default. Added an environment variable for you to change the OpenSSL version, if desired. For information about the OpenSSL version, see the [Builder README](./builder/README.md#builder-setup-in-a-docker-environment). * Updated the Auto SDK to use AVS Device SDK Version 1.22.0. For information about the AVS Device SDK, see the [AVS Device SDK Release Notes](https://developer.amazon.com/en-US/docs/alexa/avs-device-sdk/release-notes.html#version-1220). * Enhancements for AACS: * Added AACS instrumentation, which enables you to better understand the interactions between your application and AACS. Through instrumentation, you log Alexa Auto Service Bridge (AASB) messages to a file, which you can review for debugging purposes. For information about AACS instrumentation, see the [README](./platforms/android/alexa-auto-client-service/android-service/service/src/debug/java/com/amazon/alexaautoclientservice/README.md). * Added an app component called `alexa-auto-telephony`, which enables you to pre-integrate Alexa Phone Call Controller functionalities with Android Telephony. * Added an app component called `alexa-auto-contacts` to enable AACS Core Service to fetch contact information from the vehicle's head unit and send it to Alexa. The AACS Core Service can also use this library to remove from Alexa the uploaded contact information. * Added the AACS AAR, which you can include in your application. * The timeout for AASB synchronous messages is now configurable. For information about configuring the timeout, see the [README](./platforms/android/alexa-auto-client-service/android-service/README.md#auto-sdk-modules). * Enhancements for AACS Sample App: * Added support for new features in the AACS Sample App. For example, it includes a menu for the user to select a language if the in-vehicle infotainment (IVI) language is not supported by Alexa, and it supports authorization with Preview Mode. * Added support for the Alexa Custom Assistant extension to the Alexa Auto Client Service (AACS) Sample App. The sample app demonstrates how an application can use AACS with this extension. With app components included with the sample app, you can develop an application that handles assistant handoff and displays custom animation for your custom assistant. >**Note:** In order to use Alexa Custom Assistant extension with the AACS Sample App, you must install an extra component in the Auto SDK. [Contact your Amazon Solutions Architect (SA) or Partner Manager](./NEED_HELP.md#requesting-additional-functionality) for details. * Enhancements for metrics uploading: * The Auto SDK emits only registration metrics before user login is complete. Other metrics are emitted after user login. * The Device Client Metrics (DCM) extension supports uploading more metrics from the vehicle than in previous versions. * The DCM extension supports anonymizing all Auto SDK metrics. * Enhancements for car control: * Added prompt improvements. Alexa can provide a recommendation or ask for clarification after receiving an invalid or ambiguous user request. Suppose a user request targets the wrong mode, setting, or value for an appliance, such as "Alexa, set fan speed to 100", Alexa responds, "Sorry, you can only set the fan between 1 and 10". When the target in a user request is ambiguous, Alexa prompts for more information to determine the exact meaning of the request. For example, when a user says, "Turn on fan" (when the fan's default zone is not set), Alexa responds, "For the driver, the passenger, or the rear?" This feature is supported online and offline. * Improved asset management for car control, which enables Alexa to accept utterances only a few seconds after the user logs in. Previously, the user had to wait up to 20 seconds for Alexa to accept utterances. * Improved the Auto SDK Voice Chrome extension to allow the height and width of the linear voice chrome to be controlled by the parent layout. Previously, the dimensions were fixed. **Resolved Issues** * Disabled APL by default in AACS to make sure utterances like "tell me a joke" work correctly without handling APL. If your platform wants to implement APL, see the AACS [Configuration README](./platforms/android/alexa-auto-client-service/android-service/README.md#aacs-module-enablement) to enable it. * An SMS message can be sent to an Alexa contact correctly. A user request to send an SMS message to an Alexa contact no longer results in an Alexa-to-Alexa message. * For car control, there is no longer a limit of two Device Serial Numbers (DSN) per account or Customer ID (CID). * After the AmazonLite Wake Word locale model is switched from the default (en-US) to another locale model (e.g., de-DE), the newly selected locale remains in effect after the user quits and then restarts the application. * Numeric weather IDs are passed to AVS for the `TemplateRunTime` API, making it easier for you to display weather icons that are consistent with your user interface. * After the user disconnects the phone, if the user tries to use Alexa to make a call, Alexa responds correctly by reminding the user to connect the phone. Previously, Alexa tried to dial the number. * After the user pauses on Spotify and presses “Play” to resume, the player starts correctly from the point where the player stops. Previously the player skipped ahead, resuming from an incorrect place. * `AutoVoiceChromeController` and `StateChangeAnimationScheduler` of the Voice Chrome extension are thread-safe now, preventing the Alexa app from crashing in different scenarios (e.g. when changing to the previous music track). **Known Issues** * General * If the "locales" field of the "deviceSettings" node of the Alexa module configuration JSON is not specified, the Engine automatically declares support for the following locale combinations: ["en-US", "es-US"], ["es-US", "en-US"], ["en-IN", "hi-IN"], ["hi-IN", "en-IN"], ["fr-CA", "en-CA"], ["en-CA", "fr-CA"]. The Engine does not declare support for locale combinations if the "locales" field is assigned an empty value. * The `wakewordEnabled` property is not persistent across device reboots. If you use AACS, however, this issue does not occur. * For Linux platforms, if your hardware does not use AVX2 instructions, the wake word library initialization causes an illegal instruction error. * 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 a set in the cloud. 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, endpoint 1 from set A remains in the cloud and 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. * Car control utterances that are variations of supported utterances but do not follow the supported utterance patterns return errors. Examples include “please turn on the light in the car” instead of the supported “turn on the light“, and ”put on the defroster“ or “defrost the windshield” instead of the supported ”turn on the defroster”. * Communications * DTMF utterances that include the letters "A", "B", "C", or "D" (for example "press A" or "dial 3*#B") are ignored. * Calling numbers such as 1-800-xxx-xxxx by using utterances such as “Alexa call one eight double oh...” may return unexpected results. Similarly, when you call numbers by using utterances that include "triple," "hundred," and "thousand," or press special characters such as # or * by saying "Alexa press *#", you may experience unexpected results. We recommend that your client application ignore special characters, dots, and non-numeric characters when requesting Alexa to call or press digits. * A user playing any skill with extended multi-turn dialogs (such as Jeopardy or Skyrim) cannot use voice to accept or reject incoming Alexa-to-Alexa calls. * Entertainment * A user playing notifications while music is playing hears the music for a split second between the end of one notification and the start of the next. * The word, "line-in," in an utterance is sometimes misinterpreted as "line" or other words. For example, if the user says, "Switch to line-in," the misinterpretation of "line-in" might cause an incorrect response. * When an external player authorization is in progress at the exact moment of shutdown, a very rare race condition might occur, causing the Engine to crash. * If your Android app displays the NowPlaying Display Card whenever Alexa plays media, the card might be erroneously dismissed. For example, during music playback, if a user invokes Alexa, putting Alexa in LISTENING, THINKING, or SPEAKING state, and then cancels the Alexa session by tapping the Cancel button, the NowPlaying card is dismissed. A media Display Card should not be automatically dismissed in this scenario. * Authentication * The CBL module uses a backoff when refreshing the access token after expiry. If the internet is disconnected when the refresh is attempted, it could take up to a minute to refresh the token when the internet connection is restored. * AACS * For some platform interface APIs in the Core module, when an application fails to handle a directive, there is no way to report the failure to the Engine. This is because AASB assumes that the application always handles messages correctly. When AASB incorrectly reports how the application handles the message, the Engine state might become inconsistent with the application state. For example, suppose the Engine sends a directive to the application to set the audio volume but the application fails to make the change. AASB does not report the failure to the Engine. As a result, the Engine's and the application's settings become out of sync. The following list shows the affected APIs: * `AudioInput`: * `startAudioInput()` * `AudioOutput`: * `setPosition(int64_t position)` * `volumeChanged(float volume)` * `mutedStateChanged(MutedState state)` [Read the SDK Docs](https://alexa.github.io/alexa-auto-sdk/)
PreviousNext