An accessory for Android can be anything: keyboard, thermometer, robot, lighting control, or anything else you can imagine. All Android accessories connect to an Android device in some way, so when building an accessory you must consider the type of connections your accessory will use. This page provides a quick overview of your options for connecting your Android accessory and a list of resources to help you get started.

Connecting over USB

An accessory that connects to an Android device through a USB cable must support the Android Open Accessory (AOA) protocol, which specifies how an accessory can establish communication with an Android device via USB. Due to the low power output of Android devices, AOA requires the accessory to act as a USB host, meaning the connecting accessory must power the bus.

AOA has two versions that support different types of communication:

If you use the general accessory protocol to communicate with your accessory (rather than the adb or audio protocol), you must provide an Android application that can detect the connection of your USB accessory and establish communication.

Next steps

To get started building an Android accessory that uses a USB connection:

Connecting over Bluetooth

An accessory that connects with Android devices over a Bluetooth connection can use connection profiles supported by Android, including the Simple Serial Protocol (SSP) and Advanced Audio Distribution Profile (A2DP) profile. An accessory that uses Bluetooth to connect to Android devices must support Bluetooth communications and at least one of the supported connection profiles.

Users must enable Bluetooth on their Android device and pair with your accessory to use the accessory. You can also provide a secondary Android application that handles specialized communication such as data input or control outputs to interface with your accessory.

Next steps

To get started building an Android accessory that uses a Bluetooth connection:

Note: The ADK 2012 source code includes an open source Bluetooth stack built for the Texas Instruments CC2564 chip but is designed to work with any Bluetooth chip that supports a standard Host/Controller Interface (HCI).

Connecting audio over USB

An accessory that connects with Android over USB can use AOAv2 (supported on Android 4.1 (API Level 16) and higher. After an Android device connects to an accessory that supports this protocol, the Android system treats it as a standard audio output device and routes all audio to that accessory. No secondary software application is required on the Android device.

Note: Due to the low power output of Android devices, AOA requires accessories to act as a USB host, meaning the connecting accessory must power the bus.

Next steps

To get started building an audio accessory that uses a USB connection, see next steps for USB connections.

AOAv2 also supports the human interface device (HID) protocol through a USB connection, enabling accessories such as audio docks to provide hardware play back controls such as pause, fast-forward or volume buttons.