page.title=Android Open Accessory (AOA)
@jd:body

<!--
    Copyright 2015 The Android Open Source Project

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
-->

<p>Android Open Accessory (AOA) support allows external USB hardware
(Android USB accessories) to interact with Android-powered devices in
<em>accessory mode</em>. 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.
</p>

<p>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.
</p>

<p class="note"><strong>Note:</strong> Accessory mode is dependent on device
hardware; not all devices support accessory mode. Devices that support accessory
mode can be filtered using a <code>&lt;uses-feature&gt;</code> element in the
corresponding application's Android manifest. For details, see the
<a href="http://developer.android.com/guide/topics/connectivity/usb/accessory.html#manifest">USB
Accessory</a> developer guide.</p>

<p>AOA has two versions that support different types of communication:</p>
<ul>
<li><strong>AOAv1</strong>. Supports generic accessory communication and adb
debugging. Available in Android 3.1 (API Level 12) and higher and supported
through an
<a href="https://developers.google.com/android/add-ons/google-apis/">Add-On
Library</a> in Android 2.3.4 (API Level 10) and higher.</li>
<li><strong>AOAv2</strong>. Supports audio streaming and human interface
device (HID) capabilities. Available in Android 4.1 (API Level 16).</li>
</ul>