page.title=Android 2.3.4 APIs
excludeFromSuggestions=true
sdk.platform.version=2.3.4
sdk.platform.apiLevel=10


@jd:body

<div id="qv-wrapper">
<div id="qv">

<h2>In this document</h2>
<ol>
  <li><a href="#api">API Overview</a></li>
  <li><a href="#openaccessory">Open Accessory Library</a></li>
  <li><a href="#api-level">API Level</a></li>
</ol>

<h2>Reference</h2>
<ol>
<li><a
href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API
Differences Report &raquo;</a> </li>
</ol>

</div>
</div>

<p>
<em>API Level:</em>&nbsp;<strong>{@sdkPlatformApiLevel}</strong></p>

<p>Android 2.3.4 ({@link android.os.Build.VERSION_CODES#GINGERBREAD_MR1})
is a maintenance release that adds several bug fixes and patches
to the Android 2.3 platform, without any API changes from Android 2.3.3. Additionally, 
Android 2.3.4 brings support for the Open Accessory API to mobile devices,
through the optional <a href="#usb">Open Accessory Library</a>. </p>

<p>For developers, the Android {@sdkPlatformVersion} platform is available as a
downloadable component for the Android SDK. The downloadable platform includes
an Android library and system image, as well as a set of emulator skins and
more. To get started developing or testing against Android {@sdkPlatformVersion},
use the Android SDK Manager to download the platform into your SDK.</p>



<h2 id="api">API Overview</h2>

<p>Android 2.3.4 provides the same framework API to applications as Android 2.3.3
(API level 10). For a summary of the API, see the
<a href="{@docRoot}about/versions/android-2.3.3.html">Android 2.3.3 version notes</a>.</p>


<h2 id="openaccessory">Open Accessory Library</h2>

<p><em>Open Accessory</em> is a new capability for integrating
connected peripherals with applications running on the platform. The capability
is based on a USB (Universal Serial Bus) stack built into the platform and an
API exposed to applications. Peripherals that attach to Android-powered devices
as accessories connect as USB hosts. </p>

<p>Open Accessory is introduced in <a
href="{@docRoot}about/versions/android-3.1.html#usb">Android 3.1</a> (API level 12), but is
made available to devices running Android 2.3.4 by means of an optional external
library, the Open Accessory Library. The library exposes a framework API that
lets applications discover, communicate with, and manage a variety of device
types connected over USB. It also provides the implementation of the API against
parts of the Android platform that are not directly exposed to applications in
Android 2.3.4.</p>

<p>The Open Accessory Library is optional on any given device. Device
manufacturers may choose whether to include the Open Accessory Library in their
products or exclude it. The library is forward-compatible with Android 3.1, so
applications developed against Android 2.3.4 will run properly on devices
running Android 3.1, if those devices support USB accessories. </p>

<p>The API provided by the Open Accessory Library is based on the Open Accessory
API provided in Android 3.1. In most areas, you can use the same techniques and
APIs. However, developing for the Open Accessory Library on Android 2.3.4 differs
from the standard USB API in these ways:

<ul>
<li>Obtaining a {@link android.hardware.usb.UsbManager} object &mdash; To obtain
a {@link android.hardware.usb.UsbManager} object when using the add-on library,
use the helper method <code>getInstance()</code> rather than {@link
android.content.Context#getSystemService(java.lang.String) getSystemService()}
For example:

<pre>UsbManager manager = UsbManager.getInstance(this);</pre></li>

<li>Obtaining a {@link android.hardware.usb.UsbAccessory} from a filtered intent
&mdash; When you filter for a connected device or accessory with an intent
filter, the {@link android.hardware.usb.UsbAccessory} object is contained
inside the intent that is passed to your application. If you are using the
add-on library, you can get the {@link android.hardware.usb.UsbAccessory} object
in the following manner:

<pre>UsbAccessory accessory = UsbManager.getAccessory(intent)</pre></li>

<li>No USB host support &mdash; Android 2.3.4 and the Open Accessory Library do
not support USB host mode (for example, through {@link
android.hardware.usb.UsbDevice}), although USB host mode is supported in Android
3.1. An Android-powered device running Android 2.3.4 can not function as a USB
host. The library enables the Android-powered device to function as
a peripheral only, with the connected accessory functioning as USB host
(through {@link android.hardware.usb.UsbAccessory}).</li>
</ul>

<p>To develop apps using the Open Accessory Library, you need:</p>

<ul>
<li>The latest version of the Android SDK tools</li>
<li>The latest version of the Google APIs add-on, which includes the library
itself (for linking)</li>
<li>An actual hardware device running Android 2.3.4 (or Android 3.1) with USB
accessories support, for runtime testing against connected devices</li>
</ul>

<p>For a full discussion of how to develop applications that interact with USB
accessories, please see the related <a
href="{@docRoot}guide/topics/connectivity/usb/index.html">developer documentation</a>.</p>

<p>Additionally, developers can request filtering on Google Play, such that
their applications are not available to users whose devices do not provide the
appropriate accessory support. To request filtering, add the element below
to the application manifest:</p>

<pre>&lt;uses-feature
  android:name="android.hardware.usb.accessory"
  android:required="true"&gt;</pre>


<h2 id="api-level">API Level</h2>

<p>The Android 2.3.4 platform does <em>not</em> increment the API level &mdash;
it uses the same API level as Android 2.3.3, API level 10.

<p>To use APIs introduced in API level 10 in your application,
you need compile the application against the Android library that is provided in
the latest version of the Google APIs Add-On, which also includes the Open
Accessory Library.</p>

<p>Depending on your needs, you might
also need to add an <code>android:minSdkVersion="{@sdkPlatformApiLevel}"</code>
attribute to the <code>&lt;uses-sdk&gt;</code> element in the application's
manifest. If your application is designed to run only on Android 2.3.3 and higher,
declaring the attribute prevents the application from being installed on earlier
versions of the platform.</p>

<p>For more information, read <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#ApiLevels">What is API
Level?</a></p>
