Android Open Accessory (AOA)

Android Open Accessory (AOA) support allows external USB hardware (Android USB accessories) to interact with Android-powered devices in accessory mode. When an Android-powered powered device is in accessory mode, the connected accessory acts as the USB host (powers the bus and enumerates devices) and the Android-powered device acts as the USB accessory.

Android USB accessories are designed to attach to Android-powered devices. Such accessories adhere to AOA, enabling them to detect Android-powered devices that support accessory mode, and must provide 500mA at 5V for charging power. Some previously-released Android-powered devices are capable of acting only as a USB device and cannot initiate connections with external USB devices. AOA support overcomes this limitation, enabling you to build accessories that can initiate connections and interact with an assortment of Android-powered devices.

Note: Accessory mode is dependent on device hardware; not all devices support accessory mode. Devices that support accessory mode can be filtered using a <uses-feature> element in the corresponding application's Android manifest. For details, see the USB Accessory developer guide.

AOA has two versions that support different types of communication:

  • AOAv1. Supports generic accessory communication and adb debugging. Available in Android 3.1 (API Level 12) and higher and supported through an Add-On Library in Android 2.3.4 (API Level 10) and higher.
  • AOAv2. Supports audio streaming and human interface device (HID) capabilities. Available in Android 4.1 (API Level 16).