page.title=USB Host and Accessory
@jd:body

  <div id="qv-wrapper">
    <div id="qv">
      <h2>Topics</h2>

      <ol>
        <li><a href="{@docRoot}guide/topics/usb/accessory.html">USB Accessory</a></li>

        <li><a href="{@docRoot}guide/topics/usb/host.html">USB Host</a></li>
      </ol>
    </div>
  </div>

  <p>Android supports a variety of USB peripherals and Android USB accessories (hardware that
  implements the Android accessory protocol) through two modes: USB accessory and USB host. In USB
  accessory mode, the external USB hardware act as the USB hosts. Examples of accessories might
  include robotics controllers; docking stations; diagnostic and musical equipment; kiosks; card
  readers; and much more. This gives Android-powered devices that do not have host capabilities the
  ability to interact with USB hardware. Android USB accessories must be designed to work with
  Android-powered devices and must adhere to the <a href=
  "http://accessories.android.com/demokit">Android accessory communication protocol</a>. In USB
  host mode, the Android-powered device acts as the host. Examples of devices include digital
  cameras, keyboards, mice, and game controllers. USB devices that are designed for a wide range of
  applications and environments can still interact with Android applications that can correctly
  communicate with the device.</p>

  <p>Figure 1 shows the differences between the two modes. When the Android-powered device is in
  host mode, it acts as the USB host and powers the bus. When the Android-powered device is in USB
  accessory mode, the connected USB hardware (an Android USB accessory in this case) acts as the
  host and powers the bus.</p><img src="{@docRoot}images/usb-host-accessory.png" alt="">

  <p class="img-caption"><strong>Figure 1.</strong> USB Host and Accessory Modes</p>

  <p>USB accessory and host modes are directly supported in Android 3.1 (API level 12) or newer
  platforms. USB accessory mode is also backported to Android 2.3.4 (API level 10) as an add-on
  library to support a broader range of devices. Device manufacturers can choose whether or not to
  include the add-on library on the device's system image.</p>

  <p class="note"><strong>Note:</strong> Support for USB host and accessory modes are ultimately
  dependant on the device's hardware, regardless of platform level. You can filter for devices that
  support USB host and accessory through a <a href=
  "{@docRoot}guide/topics/manifest/uses-feature-element.html">&lt;uses-feature&gt;</a> element. See
  the USB <a href="{@docRoot}guide/topics/usb/accessory.html">accessory</a> and <a href=
  "{@docRoot}guide/topics/usb/host.html">host</a> documentation for more details.</p>

  <h2>Debugging considerations</h2>

  <p>When debugging applications that use USB accessory or host features, you most likely will have
  USB hardware connected to your Android-powered device. This will prevent you from having an
  <code>adb</code> connection to the Android-powered device via USB. You can still access
  <code>adb</code> over a network connection. To enable <code>adb</code> over a network
  connection:</p>

  <ol>
    <li>Connect the Android-powered device via USB to your computer.</li>

    <li>From your SDK <code>platform-tools/</code> directory, enter <code>adb tcpip 5555</code> at
    the command prompt.</li>

    <li>Enter <code>adb connect &lt;device-ip-address&gt;:5555</code> You should now be connected
    to the Android-powered device and can issue the usual <code>adb</code> commands like <code>adb
    logcat</code>.</li>

    <li>To set your device to listen on USB, enter <code>adb usb</code>.</li>
  </ol>
