Skip to content
This repository was archived by the owner on Apr 21, 2026. It is now read-only.

Commit 1cf7062

Browse files
markwhartonMuniSakkuru
authored andcommitted
Version 1.3.0 aac-sdk
The Alexa Automotive Core (AAC) SDK is for automotive OEMs to integrate Alexa directly into vehicles. **v1.3.0** * v1.3.0 released on 2018-11-20 **Enhancements** Alexa Auto SDK now includes the following features and enhancements: * All changes from v1.1.1 and v1.2.0 * Android 8 and ARM v8a platform support. * Making calls to contacts from a locally paired mobile phone as long as the Alexa Auto SDK has a valid auth token. Read more about [Contact Uploader API](./modules/contact-uploader/README.md). * Redial, answer, terminate and decline calls using voice. End users can also send dual-tone multi-frequency (DTMF) via voice to interact with Interactive Voice Responders (IVRs). Read more here [Phone Call Controller](./modules/phone-control/README.md). * Switching to local media sources, generic controls and deep linking into 3rd party media applications compatible with the Amazon Media App Command and Control (MACC) specification using the External Media Player Interface 1.1. This allows customers to switch between a CD player, AM/ FM player and auxiliary input that is MACC compliant. Read more here [Handling External Media Adapter with MACCAndroidClient](./platforms/android/ALEXA.md#handlingexternalmediaadapterwithmaccandroidclient). * Enhancement for 3rd party wake word engine to enable cloud based verification. * Provides a way to override Template Runtime display card timeout values for RenderTemplate and RenderPlayerInfo by updating the [templateRuntimeCapabilityAgent Engine configuration](https://alexa.github.io/aac-sdk/modules/core/#configuring-the-engine) values. **Resolved Issues** No resolved issues. **Known Issues** * The Alexa Auto SDK does not re-discover Media Apps Command and Control (MACC) compliant apps if they are unresponsive after being idle for a long period (around 30 minutes). * The Alexa Auto SDK Engine becomes unresponsive if it receives PLAY directive during shutdown. However since shutdown is triggered when car ignition is turned off, there is not direct customer impact expected. * When a timer sounds during an Alexa to Alexa call, uttering "stop" ends the call not the timer. * Multiple automotive devices using the same account at the same time, can access contacts from phones paired across those devices.
1 parent d548729 commit 1cf7062

743 files changed

Lines changed: 32475 additions & 8828 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
.repo
2+
.DS_Store
3+
docs
4+
extras
5+
.vscode
6+
build

CHANGELOG.md

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,63 @@
22

33
___
44

5+
## v1.3.0 released on 2018-11-20:
6+
7+
### Enhancements
8+
9+
Alexa Auto SDK now includes the following features and enhancements:
10+
11+
* Android 8 and ARM v8a platform support.
12+
* Making calls to contacts from a locally paired mobile phone as long as the Alexa Auto SDK has a valid auth token. Read more about [Contact Uploader API](./modules/contact-uploader/README.md).
13+
* Redial, answer, terminate and decline calls using voice. End users can also send dual-tone multi-frequency (DTMF) via voice to interact with Interactive Voice Responders (IVRs). Read more here [Phone Call Controller](./modules/phone-control/README.md).
14+
* Switching to local media sources, generic controls and deep linking into 3rd party media applications compatible with the Amazon Media App Command and Control (MACC) specification using the External Media Player Interface 1.1. This allows customers to switch between a CD player, AM/ FM player and auxiliary input that is MACC compliant. Read more here [Handling External Media Adapter with MACCAndroidClient](./platforms/android/ALEXA.md#handlingexternalmediaadapterwithmaccandroidclient).
15+
* Enhancement for 3rd party wake word engine to enable cloud based verification.
16+
* Provides a way to override Template Runtime display card timeout values for RenderTemplate and RenderPlayerInfo by updating the [templateRuntimeCapabilityAgent Engine configuration](https://alexa.github.io/aac-sdk/modules/core/#configuring-the-engine) values.
17+
18+
### Resolved Issues
19+
20+
No resolved issues.
21+
22+
### Known Issues
23+
24+
* The Alexa Auto SDK does not re-discover Media Apps Command and Control (MACC) compliant apps if they are unresponsive after being idle for a long period (around 30 minutes).
25+
* The Alexa Auto SDK Engine becomes unresponsive if it receives PLAY directive during shutdown. However since shutdown is triggered when car ignition is turned off, there is not direct customer impact expected.
26+
* When a timer sounds during an Alexa to Alexa call, uttering "stop" ends the call not the timer.
27+
* Multiple automotive devices using the same account at the same time, can access contacts from phones paired across those devices.
28+
29+
## v1.2.0 released on 2018-10-15:
30+
31+
### Enhancements
32+
33+
* Additional information related to the presentation of alerts is now available. The extended interface now includes Alert token, type, rendering time, and label if applicable when an alert is set and notification when an alert is deleted.
34+
* In the Navigation platform interface, ```SetDestination``` now provides business hours and contact information for a returned location when available.
35+
36+
### Resolved Issues
37+
38+
* If a location is not available, the location state is set to ```unavailable```. Previously it was treated as ```(0,0)``` which was a valid value for longitude and latitude.
39+
* Fixed an issue related to stopping an alert where there could be up to a 10 second delay before the alert completely stopped.
40+
* Fixed issue where the ```TemplateRuntime``` platform interface could not be registered before ```AudioPlayer```.
41+
42+
### Known Issues
43+
44+
There are no known issues in this release.
45+
46+
## v1.1.1 released on 2018-09-10:
47+
48+
### Enhancements
49+
50+
This release is for bug fixes only. There are no new features or enhancements.
51+
52+
### Resolved Issues
53+
54+
Issues fixed in this release:
55+
56+
* Update a dependency build recipe to skip the checksum verification to allow for document changes in the current tag.
57+
58+
### Known Issues
59+
60+
There are no known issues in this release.
61+
562
## v1.1.0 released on 2018-08-31:
663

764
### Enhancements

CMakeLists.txt

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
cmake_minimum_required(VERSION 3.5 FATAL_ERROR)
2+
3+
# Detect the version number
4+
execute_process(
5+
COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/builder/scripts/gen-version.sh" -b
6+
OUTPUT_VARIABLE SDK_BASE_VERSION
7+
)
8+
9+
project(AAC VERSION ${SDK_BASE_VERSION})
10+
set(SDK_VERSION ${SDK_VERSION})
11+
12+
message(STATUS "Alexa Auto SDK - ${SDK_VERSION}")
13+
14+
enable_testing()
15+
set(AAC_ENABLE_TESTS ON)
16+
17+
if(AAC_ENABLE_COVERAGE)
18+
set(CMAKE_CXX_FLAGS "-g -O0 -Wall -fprofile-arcs -ftest-coverage")
19+
set(CMAKE_CXX_OUTPUT_EXTENSION_REPLACE ON)
20+
endif()
21+
22+
if(MODULES)
23+
string(REPLACE "," " " MODULES ${MODULES})
24+
separate_arguments(MODULES)
25+
foreach(MODULE ${MODULES})
26+
add_subdirectory(modules/${MODULE})
27+
endforeach()
28+
else()
29+
add_subdirectory(modules/alexa)
30+
add_subdirectory(modules/core)
31+
add_subdirectory(modules/navigation)
32+
add_subdirectory(modules/phone-control)
33+
add_subdirectory(modules/contact-uploader)
34+
endif()
35+
36+
if(EXTRA_MODULES)
37+
string(REPLACE "," " " EXTRA_MODULES ${EXTRA_MODULES})
38+
separate_arguments(EXTRA_MODULES)
39+
foreach(EXTRA_MODULE ${EXTRA_MODULES})
40+
add_subdirectory(${EXTRA_MODULE})
41+
endforeach()
42+
endif()

NEED_HELP.md

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,8 @@
44

55
The following functionality is only available after the device is whitelisted:
66

7-
1. Navigation
8-
2. Amazon Music and other music service providers
9-
3. Phone Call Control
7+
* Amazon Music and other music service providers
8+
* Phone Call Control
109

1110
You will need to provide the Amazon ID of your development device or product on the [AVS Developer Portal](https://developer.amazon.com/avs/home.html#/avs/home).
1211

@@ -16,13 +15,19 @@ You will need to provide the Amazon ID of your development device or product on
1615

1716
## Reporting an Issue<a id="reportinganissue"></a>
1817

19-
Please reach out to the designated Amazon Solutions Architect or Partner Manager for your company, and include the following information:
18+
### Existing Alexa Auto SDK Customers
19+
20+
Please reach out to the designated Amazon Solution Architect (SA) or Partner Manager for your company, and include the following information:
2021

2122
* **Overview** - provide a brief overview of the issue
2223
* **Steps to reproduce** - provide details of how to reproduce the issue
2324
* **Logs** - include relevant logs
2425
* **Platform and environment** - provide details about your hardware platform, operating system, compiler, API level, etc.
2526

27+
### New Alexa Auto SDK Customers
28+
29+
Please fill out the form "Request more information" at the bottom of the [Alexa Auto Software Development Kit (SDK)](https://developer.amazon.com/alexa-voice-service/alexa-auto-sdk) page. Once you have submitted your request, someone from Amazon will contact you.
30+
2631
## Making Pull Requests<a id="pullrequests"></a>
2732

2833
We are **not** accepting pull requests or community contributed bug fixes at this time.

NOTICE

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ The following Alexa Auto SDK components are licensed under the Apache License, V
99
builder
1010
modules/alexa
1111
modules/core
12+
modules/contact-uploader
1213
modules/navigation
1314
modules/phone-control
1415
platforms/android

README.md

Lines changed: 58 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,20 @@ The following components are included with the Alexa Auto SDK:
1919

2020
* [Builder](./builder/README.md): This directory contains the scripts that allow developers to build modules for a variety of hardware targets.
2121

22-
* [Modules](./modules): This directory contains the Alexa Auto SDK interfaces and source code.
22+
* Modules: This directory contains the Alexa Auto SDK interfaces and source code in the following modules:
23+
* [Alexa](./modules/alexa/README.md)
24+
* [Core](./modules/core/README.md)
25+
* [Navigation](./modules/navigation/README.md)
26+
* [Phone Control](./modules/phone-control/README.md)
27+
* [Contact Uploader](./modules/contact-uploader/README.md)
2328

2429
* [Android Sample App](./samples/android/README.md): This directory contains the Android sample application that uses the Alexa Auto SDK to demonstrate end-to-end functionality.
30+
> **Important!** You need an [Amazon Developer Account](https://developer.amazon.com/home.html) to use the Alexa Auto SDK. Read the [Sample App](./samples/android/README.md) documentation for more details.
2531
26-
* > **Important!** You need an [Amazon Developer Account](https://developer.amazon.com/home.html) to use the Alexa Auto SDK. Read the [Sample App](./samples/android/README.md) documentation for more details.
32+
Alexa Auto SDK API Reference documentation is available for Android and C++. Access the Alexa Auto SDK API reference documentation from the links below.
2733

28-
Alexa Auto SDK API Reference documentation is available for Android and C++. Go to the appropriate directory and open the **`index.html`** file with a web browser.
29-
30-
Access the Alexa Auto SDK API reference documentation from the links below.
31-
32-
* [Alexa Auto SDK for Android](./docs/android/)
33-
* [Alexa Auto SDK for C++](./docs/cpp/)
34+
* [Alexa Auto SDK for Android](https://alexa.github.io/aac-sdk/docs/android/)
35+
* [Alexa Auto SDK for C++](https://alexa.github.io/aac-sdk/docs/cpp/)
3436

3537
## General Build Requirements<a id="generalbuildreqs"></a>
3638

@@ -43,35 +45,59 @@ However, we recommend and support running a Docker environment with the followin
4345
* Memory: 16 Gb
4446
* Storage: 1 Gb+ available to use.
4547

48+
### Build Dependencies and License Information
49+
50+
During the build time, the following dependencies are fetched and built for the target platform by [Alexa Auto SDK Builder](./builder/README.md). Please refer to each of the individual entities for the particular licenses.
51+
52+
* [AVS Device SDK v1.9](https://github.com/alexa/avs-device-sdk/)
53+
* [cURL 7.58.0](https://curl.haxx.se/)
54+
* [ngHTTP2 1.31.1](https://github.com/nghttp2/nghttp2)
55+
* [SQLite3 3.20.0](https://www.sqlite.org/)
56+
* *Android target only* [OpenSSL 1.1.0h](https://www.openssl.org/)
57+
* [Google Test v1.8.0](https://github.com/google/googletest)
58+
* [libopus 1.2.1](https://opus-codec.org/)
59+
* [OpenEmbedded-Core Rocko](https://www.openembedded.org/wiki/OpenEmbedded-Core)
60+
* [BitBake](https://www.yoctoproject.org/software-overview/)
61+
* *Android target only* [Android Toolchain](https://www.android.com/)
62+
* [NDK r16b](https://developer.android.com/ndk/)
63+
* [SDK Tools 26.0.1](https://developer.android.com/studio/releases/sdk-tools)
64+
65+
> **Note**: that *OpenEmbedded-Core* will fetch and build additional components for preparing the dedicated toolchain for your environment (Such as *GNU Binutils*). Please refer to the [Yocto project](https://www.yoctoproject.org/software-overview/) to understand how it works.
66+
67+
4668
## Vehicle Configuration Information<a id="vehicleconfigurationdatarequirements"></a>
4769

4870
The Vehicle Configuration class provides an interface for vehicle information to be supplied to the SDK. This information is required to pass the certification process.
4971

5072
Read detailed information about the vehicle configuration class in the API reference documentation.
5173

52-
* [Alexa Auto SDK for Android](./docs/android/)
53-
* [Alexa Auto SDK for C++](./docs/cpp/)
74+
* [Alexa Auto SDK for Android](https://alexa.github.io/aac-sdk/docs/android/)
75+
* [Alexa Auto SDK for C++](https://alexa.github.io/aac-sdk/docs/cpp/)
5476

5577
## Build the Alexa Auto SDK<a id="buildthesdk"></a>
5678

5779
To build the Alexa Auto SDK you should read and understand the instructions in the [Builder README](./builder/README.md).
5880

59-
The recommended and tested Linux hosts are **Ubuntu 16.04 LTS** or **macOS Sierra**.
81+
The recommended and tested host operating systems are **Ubuntu 16.04 LTS** or **macOS Sierra**.
6082

6183
### Supported Target Platforms
6284

6385
Alexa Auto SDK is supported on the following platforms:
6486

65-
* Android ARM 32-bit
66-
* Android ARM 64-bit (using 32-bit build)
67-
* Android x86
68-
* QNX ARM 64-bit
87+
* Android 5.1 Lollypop API Level 22 or higher.
88+
* ARM 32-bit
89+
* ARM 64-bit
90+
* x86
91+
* x86 64-bit
92+
* QNX 7.0
93+
* ARM 64-bit
94+
* x86 64-bit
6995

7096
> **Note**: For Android targets, Alexa Auto SDK is available as a prebuilt library on GitHub. Read the instructions about accessing and using the library in the [samples/android/ directory](./samples/android/README.md).
7197
7298
## Alexa Auto SDK Architecture<a id="architecture"></a> Overview
7399

74-
The Alexa Auto SDK is designed to allow flexibility in the integration of Alexa as a part of the Auto in-cabin experience. The Alexa Auto SDK Engine provides runtime support for Alexa and other services and allows the application to integrate with platform specific functionality. Platform specific behavior in Alexa Auto is abstracted into interfaces called "Platform Interfaces." These interfaces should be extended in the application and registered with the Engine.
100+
The Alexa Auto SDK is designed to allow flexibility in the integration of Alexa as a part of the automotive in-cabin experience. The Alexa Auto SDK Engine provides runtime support for Alexa and other services and allows the application to integrate with platform specific functionality. Platform specific behavior in Alexa Auto is abstracted into interfaces called "Platform Interfaces." These interfaces should be extended in the application and registered with the Engine.
75101

76102
The Platform Interfaces are documented in their respective module's API documentation.
77103

@@ -119,35 +145,28 @@ The Android Sample App provides an example of how to use the Alexa Auto SDK. The
119145

120146
> **Note**: Feature enhancements, updates, and resolved issues from previous releases are available to view in [CHANGELOG.md](./CHANGELOG.md)
121147
122-
### v1.1.0 Released on 2018-08-31:
123-
124-
### Enhancements
125-
126-
* Added support for choosing one of multiple network adaptors before starting the engine.
127-
128-
* Added support for latest Amazon Wakeword engine.
129-
130-
* Added custom volume control support for infotainment system's native input volume range. The range that comes down to the device will be 0 to 100.
131-
132-
* Added support for encoding the utterance in OPUS format with the Amazon Wakeword Engine as well as PTT. Our builder pulls the libopus source code as a part of build process.
133-
134-
* Added Locale API to return the list of Alexa supported locales.
135-
136-
* Updated Vehicle Information API to capture the microphone details.
148+
### v1.3.0 released on 2018-11-20:
137149

138-
* Added support for routines, music alarms, timers and alarms volume management and deleting all timers and alarms.
150+
#### Enhancements
139151

140-
* Added support for TemplateRuntime Interface 1.1 which provides visual playback control for Alexa enabled products with TemplateRuntime Interface support. This includes upgrades to PlaybackController Interface 1.1 and TemplateRuntime Interface 1.1.
141-
* > **Note**: The older button-press APIs (`playButtonPressed()` or `nextButtonPressed()`) have been deprecated in favor of the new generic `buttonPressed(PlaybackButtonType)`.
152+
Alexa Auto SDK now includes the following features and enhancements:
142153

143-
* Updated the builder script to confirm compiance with open source component licenses.
154+
* Android 8 and ARM v8a platform support.
155+
* Making calls to contacts from a locally paired mobile phone as long as the Alexa Auto SDK has a valid auth token. Read more about [Contact Uploader API](./modules/contact-uploader/README.md).
156+
* Redial, answer, terminate and decline calls using voice. End users can also send dual-tone multi-frequency (DTMF) via voice to interact with Interactive Voice Responders (IVRs). Read more here [Phone Call Controller](./modules/phone-control/README.md).
157+
* Switching to local media sources, generic controls and deep linking into 3rd party media applications compatible with the Amazon Media App Command and Control (MACC) specification using the External Media Player Interface 1.1. This allows customers to switch between a CD player, AM/ FM player and auxiliary input that is MACC compliant. Read more here [Handling External Media Adapter with MACCAndroidClient](./platforms/android/ALEXA.md#handlingexternalmediaadapterwithmaccandroidclient).
158+
* Enhancement for 3rd party wake word engine to enable cloud based verification.
159+
* Provides a way to override Template Runtime display card timeout values for RenderTemplate and RenderPlayerInfo by updating the [templateRuntimeCapabilityAgent Engine configuration](https://alexa.github.io/aac-sdk/modules/core/#configuring-the-engine) values.
144160

145-
### Resolved Issues
161+
#### Resolved Issues
146162

147-
There are no resolved issues in this release.
163+
No resolved issues.
148164

149-
### Known Issues
165+
#### Known Issues
150166

151-
There are no known issues in this release.
167+
* The Alexa Auto SDK does not re-discover Media Apps Command and Control (MACC) compliant apps if they are unresponsive after being idle for a long period (around 30 minutes).
168+
* The Alexa Auto SDK Engine becomes unresponsive if it receives PLAY directive during shutdown. However since shutdown is triggered when car ignition is turned off, there is not direct customer impact expected.
169+
* When a timer sounds during an Alexa to Alexa call, uttering "stop" ends the call not the timer.
170+
* Multiple automotive devices using the same account at the same time, can access contacts from phones paired across those devices.
152171

153172
Sample App issues are documented in the [Sample App README](./samples/android/README.md#androidsampleapprelnote).

SEQUENCE_DIAGRAMS.md

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,11 @@ This diagram includes the actual names and syntax for the methods and functions
3232
3333
### Tap to Talk Flow Summary
3434

35-
![numberone](./assets/number-1.png) &ensp; The driver pushes the voice button in the car. This specific human action puts Alexa into a listening state. There should be a visual indication to the driver that Alexa is now ready for audio input.
35+
1. The driver pushes the voice button in the car. This specific human action puts Alexa into a listening state. There should be a visual indication to the driver that Alexa is now ready for audio input.
3636

37-
![numbertwo](./assets/number-2.png) &ensp; The car's microphone is now actively receiving voice input and preparing an audio buffer to send to the Alexa Auto SDK Engine. The Alexa Auto SDK Engine audio input function loops until a directive is returned indicating that the audio input has finished.
37+
1. The car's microphone is now actively receiving voice input and preparing an audio buffer to send to the Alexa Auto SDK Engine. The Alexa Auto SDK Engine audio input function loops until a directive is returned indicating that the audio input has finished.
3838

39-
![numberthree](./assets/number-3.png) &ensp; A visual indication should be displayed on the head unit screen indicating that Alexa is in a thinking state. In this state, Alexa is processing the input buffer and creating an appropriate response type. In this example Alexa is creating an audio out file that is sent to the cars head unit to play.
39+
1. A visual indication should be displayed on the head unit screen indicating that Alexa is in a thinking state. In this state, Alexa is processing the input buffer and creating an appropriate response type. In this example Alexa is creating an audio out file that is sent to the cars head unit to play.
4040

4141
## Wake Word Enabled Sequence Diagram<a id="wakewordenabled"></a>
4242

@@ -50,6 +50,10 @@ This diagram includes the actual names and syntax for the methods and functions
5050

5151
### Wake Word Enabled Flow Summary
5252

53-
![numberone](./assets/number-1.png) &ensp; Alexa recognizes the wake word and starts building an audio data buffer until the audio request is complete.
53+
1. ```startAudioInput()``` is called when wake word detection is enabled. This occurs when the Engine is started if wake word is enabled by default, or when ```enabledWakewordDetection()``` is explicitly called by the application. When this happens, the application must start sending audio samples from the microphone to the Engine.
5454

55-
![numbertwo](./assets/number-2.png) &ensp; Once the audio request is complete, a thinking state voice chrome should be displayed.
55+
1. Audio is processed locally by the wake word engine until the wake word is detected. Once the wake word is detected, the Engine notifies the application that the dialog state has changed to "listening" and initiates a Recognize event with Alexa.
56+
57+
1. While in the listening state, audio data is sent to Alexa until the end of speech is detected. Once the end of speech is detected, Alexa sends a ```StopCapture``` directive to the Engine and the dialog state is changed to "thinking." Alexa then respond with additional directives in response to the speech request.
58+
59+
1. The application should continue to send audio to the Engine until ```stopAudioInput()``` is received. When wake word is enabled, this happens when the Engine is stopped, or when ```disableWakewordDetection()``` is explicitly called by the application.

assets/aac-seq-wwe.png

9.05 KB
Loading

builder/.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ extras
33

44
android-toolchain/
55
amazon-sources/
6+
downloads/
67

78
build/
8-
cmake/
99

1010
deploy/
1111

0 commit comments

Comments
 (0)