Skip to content

Most visited

Recently visited

navigation

Android 2.3 APIs

In this document

  1. API Overview
  2. API Level

Reference

  1. API Differences Report »

API Level: 9

For developers, the Android 2.3 (GINGERBREAD)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 2.3, use the Android SDK Manager to download the platform into your SDK.

API Overview

The sections below provide a technical overview of what's new for developers in 2.3, including new features and changes in the framework API since the previous version.

SIP-based VoIP

The platform now includes a SIP protocol stack and framework API that lets developers build internet telephony applications. Using the API, applications can offer voice calling features without having to manage sessions, transport-level communication, or audio — these are handled transparently by the platform's SIP API and services.

The SIP API is available in the android.net.sip package. The key class is SipManager, which applications use to set up and manage SIP profiles, then initiate audio calls and receive audio calls. Once an audio call is established, applications can mute calls, turn on speaker mode, send DTMF tones, and more. Applications can also use the SipManager to create generic SIP connections.

The platform’s underlying SIP stack and services are available on devices at the discretion of the manufacturer and associated carrier. For this reason, applications should use the isApiSupported() method to check whether SIP support is available, before exposing calling functionality to users.

To use the SIP API, applications must request permission from the user by declaring <uses-permission android:name="android.permission.INTERNET"> and <uses-permission android:name="android.permission.USE_SIP"> 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 include the platform’s SIP stack and services. To request filtering, add <uses-feature android:name="android.software.sip" android:required="true"> and <uses-feature android:name="android.software.sip.voip"> to the application manifest.

For more information, read the SIP developer guide.

Near Field Communications (NFC)

Android 2.3 includes an NFC stack and framework API that lets developers read NDEF tags that are discovered as a user touches an NFC-enabled device to tag elements embedded in stickers, smart posters, and even other devices.

The platform provides the underlying NFC services that work with the device hardware to discover tags when they come into range. On discovering a tag, the platform notifies applications by broadcasting an Intent, appending the tag's NDEF messages to the Intent as extras. Applications can create Intent filters to recognize and handle targeted tags and messages. For example, after receiving a tag by Intent, applications extract the NDEF messages, store them, alert the user, or handle them in other ways.

The NFC API is available in the android.nfc package. The key classes are:

NFC communication relies on wireless technology in the device hardware, so support for the platform's NFC features on specific devices is determined by their manufacturers. To determine the NFC support on the current device, applications can call isEnabled() to query the NfcAdapter. 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 a sample application that uses the NFC API, see NFCDemo.

Gyroscope and other sensors

Android 2.3 adds platform and API support for several new sensor reading types — gyroscope, rotation vector, linear acceleration, gravity, and barometer. Developers can use the new sensor readings to create applications that respond quickly and smoothly to precise changes in device position and motion. The Sensor API reports gyroscope and other sensor changes to interested applications, whether they are running on the application framework or in native code.

Note that the specific set of hardware sensors available on any given device varies at the discretion of the device manufacturer.

Developers can request filtering on Google Play, such that their applications are not discoverable to users whose devices do not offer a gyroscope sensor. To do so, add <uses-feature android:name="android.hardware.sensor.gyroscope" android:required="true"> to the application manifest.

For API details, see Sensor.

Multiple cameras support

Applications can now make use of any cameras that are available on a device, for either photo or video capture. The Camera lets applications query for the number of cameras available and the unique characteristics of each.

To look at sample code for accessing a front-facing camera, see CameraPreview.java in the ApiDemos sample application.

The Camera API also adds:

Mixable audio effects

The platform's media framework adds support for new per-track or global audio effects, including bass boost, headphone virtualization, equalization, and reverb.

To look at sample code for audio effects, see AudioFxDemo.java in the ApiDemos sample application.

The media framework also adds:

Download manager

The platform includes a new DownloadManager system service that handles long-running HTTP downloads. Applications can request that a URI be downloaded to a particular destination file. The DownloadManager will conduct the download in the background, taking care of HTTP interactions and retrying downloads after failures or across connectivity changes and system reboots.

StrictMode

To help developers monitor and improve the performance of their applications, the platform offers a new system facility called StrictMode. When implemented in an application, StrictMode catches and notifies the developer of accidental disk or network activity that could degrade application performance, such as activity taking place on the application's main thread (where UI operations are received and animations are also taking place). Developers can evaluate the network and disk usages issues raised in StrictMode and correct them if needed, keeping the main thread more responsive and preventing ANR dialogs from being shown to users.

For more information about how to use StrictMode to optimize your application, see the class documentation and sample code at android.os.StrictMode.

UI Framework