68 lines
3.6 KiB
Plaintext
68 lines
3.6 KiB
Plaintext
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"><uses-feature></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 <device-ip-address>: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>
|