beautypg.com

Intent compatibility, Core application intents, Intent overrides – Google Android Compatibility Definition: Android 1.6 User Manual

Page 8: Intent namespaces

background image

3.2.3. Intent Compatibility

Android uses Intents to achieve loosely-coupled integration between applications. This section describes
requirements related to the Intent patterns that MUST be honored by device implementations. By
"honored", it is meant that the device implementer MUST provide an Android Activity, Service, or other
component that specifies a matching Intent filter and binds to and implements correct behavior for each
specified Intent pattern.

3.2.3.1. Core Application Intents

The Android upstream project defines a number of core applications, such as a phone dialer, calendar,
contacts book, music player, and so on. Device implementers MAY replace these applications with
alternative versions.

However, any such alternative versions MUST honor the same Intent patterns provided by the upstream
project. (For example, if a device contains an alternative music player, it must still honor the Intent pattern
issued by third-party applications to pick a song.) Device implementions MUST support all Intent patterns
listed in

Appendix A

.

3.2.3.2. Intent Overrides

As Android is an extensible platform, device implementers MUST allow each Intent pattern described in
Appendix A to be overridden by third-party applications. The upstream Android open source project
allows this by default; device implementers MUST NOT attach special privileges to system applications'
use of these Intent patterns, or prevent third-party applications from binding to and assuming control of
these patterns. This prohibition specifically includes disabling the "Chooser" user interface which allows
the user to select between multiple applications which all handle the same Intent pattern.

3.2.3.3. Intent Namespaces

Device implementers MUST NOT include any Android component that honors any new Intent or
Broadcast Intent patterns using an ACTION, CATEGORY, or other key string in the android.* namespace.
Device implementers MUST NOT include any Android components that honor any new Intent or
Broadcast Intent patterns using an ACTION, CATEGORY, or other key string in a package space
belonging to another organization. Device implementers MUST NOT alter or extend any of the Intent
patterns listed in Appendices A or B.

This prohibition is analogous to that specified for Java language classes in Section 3.6.