page.title=Android 2.3.3 Platform sdk.platform.version=2.3.3 sdk.platform.apiLevel=10 @jd:body
API Level: {@sdkPlatformApiLevel}
Android 2.3.3 is a small feature release that adds several improvements and APIs to the Android 2.3 platform.
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.
The sections below provide a technical overview of what's new for developers in {@sdkPlatformVersion}, including new features and changes in the framework API since the previous version.
Android 2.3.3 provides improved and extended support for NFC, to allow applications to interact with more types of tags in new ways.
A new, comprehensive set of APIs give applications read and write access to a wider range of standard tag technologies, including:
The platform also provides a limited peer-to-peer communication protocol and API. Foreground Activities can use the API to register an NDEF message that will get pushed to other NFC devices when they connect.
Advanced tag dispatching now gives applications more control over how and
when they are launched, when an NFC tag is discovered. Previously, the platform
used a single-step intent dispatch to notify interested applications that a tag
was discovered. The platform now uses a four-step process that enables the
foreground application to take control of a tag event before it is passed to any
other applications (android.nfc.NfcAdapter.enableForegroundDispatch()
).
The new dispatch process also lets apps listen for specific tag content and
tag technologies, based on two new intent actions —
android.nfc.action.NDEF_DISCOVERED
and
android.nfc.action.TECH_DISCOVERED
.
The NFC API is available in the {@link android.nfc} and {@link android.nfc.tech} packages. The key classes are:
NFC communication relies on wireless technology in the device hardware, and
is not present in all Android devices. Android devices that do not support
NFC will return a null object when
{@link android.nfc.NfcAdapter#getDefaultAdapter(android.content.Context)
getDefaultAdapter(Context)} is called, and
context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_NFC)
will return false
. The NFC API is always present, however, regardless of
underlying hardware support.
To use the NFC API, applications must request permission from the user by
declaring <uses-permission
android:name="android.permission.NFC">
in their manifest files.
Additionally, developers can request filtering on Google Play, such that
their applications are not discoverable to users whose devices do not support
NFC. To request filtering, add
<uses-feature android:name="android.hardware.nfc"
android:required="true">
to the application's manifest.
To look at sample code for NFC, see NFCDemo app, filtering by tag technology, using foreground dispatch, and foreground NDEF push (P2P).
Android 2.3.3 adds platform and API support for Bluetooth nonsecure socket connections. This lets applications communicate with simple devices that may not offer a UI for authentication. See {@link android.bluetooth.BluetoothDevice#createInsecureRfcommSocketToServiceRecord(java.util.UUID)} and {@link android.bluetooth.BluetoothAdapter#listenUsingInsecureRfcommWithServiceRecord(java.lang.String, java.util.UUID)} for more information.
The speech-recognition API includes new constants to let you manage voice search results in new ways. Although the new constants are not needed for normal use of speech recognition, you could use them to offer a different view of voice search results in your application. For information, see {@link android.speech.RecognizerResultsIntent}.
The Android {@sdkPlatformVersion} platform delivers an updated version of the framework API. The Android {@sdkPlatformVersion} API is assigned an integer identifier — {@sdkPlatformApiLevel} — that is stored in the system itself. This identifier, called the "API Level", allows the system to correctly determine whether an application is compatible with the system, prior to installing the application.
To use APIs introduced in Android {@sdkPlatformVersion} in your application,
you need compile the application against the Android library that is provided in
the Android {@sdkPlatformVersion} SDK platform. Depending on your needs, you might
also need to add an android:minSdkVersion="{@sdkPlatformApiLevel}"
attribute to the <uses-sdk>
element in the application's
manifest. If your application is designed to run only on Android 2.3 and higher,
declaring the attribute prevents the application from being installed on earlier
versions of the platform.
For more information, read What is API Level?