Skip to content

Most visited

Recently visited


Android 4.0.3 APIs

API Level: 15

Android 4.0.3 (ICE_CREAM_SANDWICH_MR1) is an incremental release of the Android 4.0 (ICE_CREAM_SANDWICH) platform family. This release includes new features for users and developers, API changes, and various bug fixes.

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

API Overview

The sections below provide a technical overview of new APIs in Android 4.0.3.

Social stream API in Contacts Provider

Applications that use social stream data such as status updates and check-ins can now sync that data with each of the user’s contacts, providing items in a stream along with photos for each.

The database table that contains an individual contact’s social stream is defined by android.provider.ContactsContract.StreamItems, the Uri for which is nested within the ContactsContract.RawContacts directory to which the stream items belong. Each social stream table includes several columns for metadata about each stream item, such as an icon representing the source (an avatar), a label for the item, the primary text content, comments about the item (such as responses from other people), and more. Photos associated with a stream are stored in another table, defined by android.provider.ContactsContract.StreamItemPhotos, which is available as a sub-directory of the android.provider.ContactsContract.StreamItems Uri.

See android.provider.ContactsContract.StreamItems and android.provider.ContactsContract.StreamItemPhotos for more information.

To read or write social stream items for a contact, an application must request permission from the user by declaring <uses-permission android:name="android.permission.READ_SOCIAL_STREAM"> and/or <uses-permission android:name="android.permission.WRITE_SOCIAL_STREAM"> in their manifest files.

Calendar Provider

Home screen widgets

Starting from Android 4.0, home screen widgets should no longer include their own padding. Instead, the system now automatically adds padding for each widget, based the characteristics of the current screen. This leads to a more uniform, consistent presentation of widgets in a grid. To assist applications that host home screen widgets, the platform provides a new method getDefaultPaddingForWidget(). Applications can call this method to get the system-defined padding and account for it when computing the number of cells to allocate to the widget.



New public methods fetchUuidsWithSdp() and getUuids() let apps determine the features (UUIDs) supported by a remote device. In the case of fetchUuidsWithSdp(), the system performs a service discovery on the remote device to get the UUIDs supported, then broadcasts the result in an ACTION_UUID intent.

UI toolkit

New methods setUserVisibleHint() and getUserVisibleHint() allow a fragment to set a hint of whether or not it is currently user-visible. The system defers the start of fragments that are not user-visible until the loaders for visible fragments have run. The visibility hint is "true" by default.






Adds new categories for targeting common types of applications on the device, such as CATEGORY_APP_BROWSER, CATEGORY_APP_CALENDAR, CATEGORY_APP_MAPS, and more.



The following are new permissions:

For a detailed view of all API changes in Android 4.0.3 (API Level 15), see the API Differences Report.

API Level

The Android 4.0.3 API is assigned an integer identifier—15—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 4.0.3 in your application, you need compile the application against an Android platform that supports API level 15 or higher. Depending on your needs, you might also need to add an android:minSdkVersion="15" attribute to the <uses-sdk> element.

For more information, see the API Levels document.

This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields


Follow Google Developers on WeChat

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a short survey?
Help us improve the Android developer experience. (April 2018 — Developer Survey)