page.title=Building Audio Accessories @jd:body
In implementing an audio accessory, such as a headset, headphone amplifier, microphone, DAC/ADC, or dock, you should consider how your accessory will connect with Android devices. In particular, you should decide if your accessory will use wired a 3.5 mm headset connector, Universal Serial Bus (USB), or a Bluetooth connection to stream music or other audio content.
Many Android-based devices include a 3.5 mm (“mini”) headset connector. In addition to the traditional stereo output and mono input features, the Wired audio headset specification defines standard impedances and functions so a range of Android devices and headsets can inter-operate.
Android can use USB in several modes:
In the traditional debug mode, there is no audio capability.
Accessory mode is provided by the Open Accessory (AOA) protocol version 2.0. There is limited audio capability in accessory mode, as described in Connecting custom audio over USB.
Host mode enables the Android device to drive the USB bus and operate with a wide range of USB-based peripherals, including audio interfaces. Host mode audio is described in USB Digital Audio
An accessory that connects with Android over Bluetooth can use an Advanced Audio Distribution Profile (A2DP) connection stream music for playback. Playing audio over a Bluetooth with A2DP is supported on Android 1.5 (API Level 3) and higher. An Android user can connect to an accessory that supports this profile using the system Settings > Bluetooth and play music directly to the accessory without the need for a secondary application.
Note: If you want to provide a custom application for output to your audio
accessory, note that the Android 3.0 (API Level 11) allows applications to operate an A2DP
connection using the
BluetoothA2dp
class.
To get started on building an audio accessory that uses a Bluetooth connection:
<adk-src>/adk2012/board/library/ADK2/
), which includes an example implementation
of an audio playback accessory using a Bluetooth connection.Note: The ADK 2012 source code includes an open source Bluetooth stack that is built for the Texas Instruments CC2564 chip, but can work with any Bluetooth chip that implements a standard Host/Controller Interface (HCI).