Alexa Smart Screen SDK
The Alexa Smart Screen SDK extends the AVS Device SDK to support development for screen-based Alexa Built-in products. This SDK enables device makers to build screen-based products that complement Alexa voice responses with rich visual experiences.
The Alexa Smart Screen SDK package in this GitHub repo includes:
- The Alexa Smart Screen SDK
- A sample app that demonstrates end-to-end Alexa Smart Screen SDK functionality
- A GUI web app that handles presentation of Alexa visual responses
The Alexa Smart Screen SDK depends on the following additional GitHub repos:
You can set up the Alexa Smart Screen SDK by using the following Quick Start Guides:
You can also create your device prototype by using an Amazon-qualified development kit that supports the Smart Screen SDK, such as:
This diagram illustrates the data flows between components that comprise the Alexa Smart Screen SDK.
AVS Device SDK: The SDK for Alexa Voice Service, which implements Alexa intelligent voice control functionality.
Capability Agents (CAs): Handle Alexa-driven interactions; specifically directives and events. Each capability agent corresponds to a specific interface exposed by the Alexa Smart Screen API. These interfaces include:
- AlexaPresentation - The interface for rendering Alexa Presentation Language (APL) documents.
- TemplateRuntime - The interface for PlayerInfo and Template cards (such as music cards and other static cards).
- VisualCharacteristics - The interface for reporting the physical properties of visual display devices (such as screen resolution, window size, and supported interaction modes).
- GUIManager: Interface between the capability agents and the GUI
- GUIClient: Manages messages between the GUI and the rest of the sample app
- APLCoreTextMeasurement: Handles text measurement requests from the APL Core Library
- APLCoreConnectionManager: Manages the currently rendered APL document
- APLCoreGUIRenderer: Handles the creation of APL documents
- WebSocketServer: Reference implementation of a WebSocket-based messaging interface
APL Core Library Engine: An abstract engine for Alexa Presentation Language (APL) that manages not only APL document parsing and layout inflation, but also event handling, commands, and the rendering workflow.
- WebSocket: Reference implementation of a WebSocket client
- APL Web ViewHost: Renders the APL document generated by the APL Core Library
- Alexa GUI: Reference GUI implementation
Security Best Practices
- Review the Alexa Smart Screen License.
- Review the Alexa Smart Screen Notice about Third-Party Components.
Add voice chrome
Run the GUI client with predefined device visual characteristics and GUI client configurations
We provide four different sample configuration files containing predefined device visual characteristics and GUI client configurations. These can be found under
You can pass any of them as an extra config file argument after the main Smart Screen SDK config file argument when running the Sample App, for example:
cd <pathTo>/ss-build ./modules/Alexa/SampleApp/src/SampleApp -C <pathTo>/sdk-build/Integration/AlexaClientSDKConfig.json -C <pathTo>/alexa-smart-screen-sdk/modules/GUI/config/SmartScreenSDKConfig.json -C <pathTo>/alexa-smart-screen-sdk/modules/GUI/config/guiConfigSamples/GuiConfigSample_TvOverlayPortrait.json -L INFO
Remote control support
Functionality for Exit and Back buttons (as found on a device's physical remote control) is minimally supported by the Smart Screen SDK. The following behaviors are expected to occur on execution of either a
- Clear the rendering screen - Exit fully out of the Alexa-presented display so that no static image or layout is left.
- Release the focus management - Release any focus management that might be held.
Using the default gui client configuration's device keys,
B are mapped to