public class Intent

extends Object implements Parcelable, Cloneable

An intent is an abstract description of an operation to be performed. It can be used with Context#startActivity(Intent) to launch an Activity , broadcastIntent to send it to any interested BroadcastReceiver components, and Context.startService(Intent) or Context.bindService(Intent, ServiceConnection, int) to communicate with a background Service .

An Intent provides a facility for performing late runtime binding between the code in different applications. Its most significant use is in the launching of activities, where it can be thought of as the glue between activities. It is basically a passive data structure holding an abstract description of an action to be performed.

For information about how to create and resolve intents, read the Intents and Intent Filters developer guide.

The primary pieces of information in an intent are:

data -- The data to operate on, such as a person record in the contacts database, expressed as a Uri .

action -- The general action to be performed, such as ACTION_VIEW , ACTION_EDIT , ACTION_MAIN , etc.

Some examples of action/data pairs are:

ACTION_VIEW content://contacts/people/ -- Display a list of people, which the user can browse through. This example is a typical top-level entry into the Contacts application, showing you the list of people. Selecting a particular person to view would result in a new intent { ACTION_VIEW content://contacts/people/N } being used to start an activity to display that person.

ACTION_DIAL tel:123 -- Display the phone dialer with the given number filled in.

ACTION_VIEW tel:123 -- Display the phone dialer with the given number filled in. Note how the VIEW action does what is considered the most reasonable thing for a particular URI.

In addition to these primary attributes, there are a number of secondary attributes that you can also include with an intent:

extras -- This is a Bundle of any additional information. This can be used to provide extended information to the component. For example, if we have a action to send an e-mail message, we could also include extra pieces of data here to supply a subject, body, etc.

component -- Specifies an explicit name of a component class to use for the intent. Normally this is determined by looking at the other information in the intent (the action, data/type, and categories) and matching that with a component that can handle it. If this attribute is set then none of the evaluation is performed, and this component is used exactly as is. By specifying this attribute, all of the other Intent attributes become optional.

type -- Specifies an explicit type (a MIME type) of the intent data. Normally the type is inferred from the data itself. By setting this attribute, you disable that evaluation and force an explicit type.

category -- Gives additional information about the action to execute. For example, CATEGORY_LAUNCHER means it should appear in the Launcher as a top-level application, while CATEGORY_ALTERNATIVE means it should be included in a list of alternative actions the user can perform on a piece of data.

Here are some examples of other operations you can specify as intents using these additional parameters:

ACTION_GET_CONTENT with MIME type */* and category CATEGORY_OPENABLE -- Display all pickers for data that can be opened with ContentResolver#openInputStream(Uri) , allowing the user to pick one of them and then some data inside of it and returning the resulting URI to the caller. This can be used, for example, in an e-mail application to allow the user to pick some data to include as an attachment.

ACTION_GET_CONTENT with MIME type vnd.android.cursor.item/phone -- Display the list of people's phone numbers, allowing the user to browse through them and pick one and return it to the parent activity.

There are a variety of standard Intent action and category constants defined in the Intent class, but applications can also define their own. These strings use Java-style scoping, to ensure they are unique -- for example, the standard ACTION_VIEW is called "android.intent.action.VIEW".

Put together, the set of actions, data types, categories, and extra data defines a language for the system allowing for the expression of phrases such as "call john smith's cell". As applications are added to the system, they can extend this language by adding new actions, types, and categories, or they can modify the behavior of existing phrases by supplying their own activities that handle them.

There are two primary forms of intents you will use.

Implicit Intents have not specified a component; instead, they must include enough information for the system to determine which of the available components is best to run for that intent.

Explicit Intents have specified a component (via setComponent(ComponentName) or setClass(Context, Class>) ), which provides the exact class to be run. Often these will not include any other information, simply being a way for an application to launch various internal activities it has as the user interacts with the application.

When using implicit intents, given such an arbitrary intent we need to know what to do with it. This is handled by the process of Intent resolution, which maps an Intent to an Activity , BroadcastReceiver , or Service (or sometimes two or more activities/receivers) that can handle it.

The intent resolution mechanism basically revolves around matching an Intent against all of the <intent-filter> descriptions in the installed application packages. (Plus, in the case of broadcasts, any BroadcastReceiver objects explicitly registered with Context#registerReceiver .) More details on this can be found in the documentation on the IntentFilter class.

There are three pieces of information in the Intent that are used for resolution: the action, type, and category. Using this information, a query is done on the PackageManager for a component that can handle the intent. The appropriate component is determined based on the intent information supplied in the AndroidManifest.xml file as follows:

The categories , if supplied, must all be listed by the activity as categories it handles. That is, if you include the categories CATEGORY_LAUNCHER and CATEGORY_ALTERNATIVE , then you will only resolve to components with an intent that lists both of those categories. Activities will very often need to support the CATEGORY_DEFAULT so that they can be found by Context#startActivity .

The type is retrieved from the Intent's data, if not already supplied in the Intent. Like the action, if a type is included in the intent (either explicitly or implicitly in its data), then this must be listed by the component as one it handles.

The action , if given, must be listed by the component as one it handles.

For example, consider the Note Pad sample application that allows a user to browse through a list of notes data and view details about individual items. Text in italics indicates places where you would replace a name with one specific to your own package.

The first activity, com.android.notepad.NotesList , serves as our main entry into the app. It can do three things as described by its three intent templates:

This filter describes the ability to return to the caller a note selected by the user without needing to know where it came from. The data type vnd.android.cursor.item/vnd.google.note is a URI from which a Cursor of exactly one ( vnd.android.cursor.item ) item can be retrieved which contains our note pad data ( vnd.google.note ). The GET_CONTENT action is similar to the PICK action, where the activity will return to its caller a piece of data selected by the user. Here, however, the caller specifies the type of data they desire instead of the type of data the user will be picking from.

This declares the things that the activity can do on a directory of notes. The type being supported is given with the <type> tag, where vnd.android.cursor.dir/vnd.google.note is a URI from which a Cursor of zero or more items ( vnd.android.cursor.dir ) can be retrieved which holds our note pad data ( vnd.google.note ). The activity allows the user to view or edit the directory of data (via the VIEW and EDIT actions), or to pick a particular note and return it to the caller (via the PICK action). Note also the DEFAULT category supplied here: this is required for the Context#startActivity method to resolve your activity when its component name is not explicitly specified.

This provides a top-level entry into the NotePad application: the standard MAIN action is a main entry point (not requiring any other information in the Intent), and the LAUNCHER category says that this entry point should be listed in the application launcher.

Given these capabilities, the following intents will resolve to the NotesList activity:

{ action=android.app.action.GET_CONTENT type=vnd.android.cursor.item/vnd.google.note } is similar to the pick action, but allows the caller to specify the kind of data they want back so that the system can find the appropriate activity to pick something of that data type.

{ action=android.app.action.PICK data=content://com.google.provider.NotePad/notes } provides a list of the notes under "content://com.google.provider.NotePad/notes", from which the user can pick a note whose data URL is returned back to the caller.

{ action=android.intent.action.VIEW data=content://com.google.provider.NotePad/notes } displays a list of all the notes under "content://com.google.provider.NotePad/notes", which the user can browse through and see the details on.

{ action=android.app.action.MAIN, category=android.app.category.LAUNCHER } is the actual intent used by the Launcher to populate its top-level list.

{ action=android.app.action.MAIN } matches all of the activities that can be used as top-level entry points into an application.

The second activity, com.android.notepad.NoteEditor , shows the user a single note entry and allows them to edit it. It can do two things as described by its two intent templates:

The secondary use of this activity is to insert a new note entry into an existing directory of notes. This is used when the user creates a new note: the INSERT action is executed on the directory of notes, causing this activity to run and have the user create the new note data which it then adds to the content provider.

The first, primary, purpose of this activity is to let the user interact with a single note, as decribed by the MIME type vnd.android.cursor.item/vnd.google.note . The activity can either VIEW a note or allow the user to EDIT it. Again we support the DEFAULT category to allow the activity to be launched without explicitly specifying its component.

Given these capabilities, the following intents will resolve to the NoteEditor activity:

{ action=android.app.action.INSERT data=content://com.google.provider.NotePad/notes } creates a new, empty note in the notes list at "content://com.google.provider.NotePad/notes" and allows the user to edit it. If they keep their changes, the URI of the newly created note is returned to the caller.

{ action=android.app.action.EDIT data=content://com.google.provider.NotePad/notes/ {ID} } allows the user to edit the content of note {ID} .

The last activity, com.android.notepad.TitleEditor , allows the user to edit the title of a note. This could be implemented as a class that the application directly invokes (by explicitly setting its component in the Intent), but here we show a way you can publish alternative operations on existing data:

In the single intent template here, we have created our own private action called com.android.notepad.action.EDIT_TITLE which means to edit the title of a note. It must be invoked on a specific note (data type vnd.android.cursor.item/vnd.google.note ) like the previous view and edit actions, but here displays and edits the title contained in the note data.

In addition to supporting the default category as usual, our title editor also supports two other standard categories: ALTERNATIVE and SELECTED_ALTERNATIVE. Implementing these categories allows others to find the special action it provides without directly knowing about it, through the PackageManager.queryIntentActivityOptions(ComponentName, Intent[], Intent, int) method, or more often to build dynamic menu items with Menu.addIntentOptions(int, int, int, ComponentName, Intent[], Intent, int, MenuItem[]) . Note that in the intent template here was also supply an explicit name for the template (via android:label="@string/resolve_title" ) to better control what the user sees when presented with this activity as an alternative action to the data they are viewing.

Given these capabilities, the following intent will resolve to the TitleEditor activity:

{ action=com.android.notepad.action.EDIT_TITLE data=content://com.google.provider.NotePad/notes/ {ID} } displays and allows the user to edit the title associated with note {ID} .

These are the current standard actions that Intent defines for launching activities (usually through Context#startActivity . The most important, and by far most frequently used, are ACTION_MAIN and ACTION_EDIT .

These are the current standard actions that Intent defines for receiving broadcasts (usually through Context#registerReceiver or a <receiver> tag in a manifest).

These are the current standard categories that can be used to further clarify an Intent via addCategory(String) .

These are the current standard fields that can be used as extra data via putExtra(String, Bundle) .

These are the possible flags that can be used in the Intent via setFlags(int) and addFlags(int) . See setFlags(int) for a list of all possible flags.

Nested classes

class Intent.FilterComparison Wrapper class holding an Intent and implementing comparisons on it for the purpose of filtering.

class Intent.ShortcutIconResource Represents a shortcut/live folder icon resource.

Inherited constants android.os.Parcelable From interface int CONTENTS_FILE_DESCRIPTOR Descriptor bit used with describeContents() : indicates that the Parcelable object's flattened representation includes a file descriptor. int PARCELABLE_WRITE_RETURN_VALUE Flag for use with writeToParcel(Parcel, int) : the object being written is a return value, that is the result of a function such as " Parcelable someFunction() ", " void someFunction(out Parcelable) ", or " void someFunction(inout Parcelable) ".

Fields public static final Creator<Intent> CREATOR

Public constructors Intent() Create an empty intent. Intent(Intent o) Copy constructor. Intent(String action) Create an intent with a given action. Intent(String action, Uri uri) Create an intent with a given action and for a given data url. Intent(Context packageContext, Class<?> cls) Create an intent for a specific component. Intent(String action, Uri uri, Context packageContext, Class<?> cls) Create an intent for a specific component with a specified action and data.

Public methods Intent addCategory(String category) Add a new category to the intent. Intent addFlags(int flags) Add additional flags to the intent (or with existing flags value). Object clone() Creates and returns a copy of this object. Intent cloneFilter() Make a clone of only the parts of the Intent that are relevant for filter matching: the action, data, type, component, and categories. static Intent createChooser(Intent target, CharSequence title, IntentSender sender) Convenience function for creating a ACTION_CHOOSER Intent. static Intent createChooser(Intent target, CharSequence title) Convenience function for creating a ACTION_CHOOSER Intent. int describeContents() Describe the kinds of special objects contained in this Parcelable instance's marshaled representation. int fillIn(Intent other, int flags) Copy the contents of other in to this object, but only where fields are not defined by this object. boolean filterEquals(Intent other) Determine if two intents are the same for the purposes of intent resolution (filtering). int filterHashCode() Generate hash code that matches semantics of filterEquals(). String getAction() Retrieve the general action to be performed, such as ACTION_VIEW . boolean[] getBooleanArrayExtra(String name) Retrieve extended data from the intent. boolean getBooleanExtra(String name, boolean defaultValue) Retrieve extended data from the intent. Bundle getBundleExtra(String name) Retrieve extended data from the intent. byte[] getByteArrayExtra(String name) Retrieve extended data from the intent. byte getByteExtra(String name, byte defaultValue) Retrieve extended data from the intent. Set<String> getCategories() Return the set of all categories in the intent. char[] getCharArrayExtra(String name) Retrieve extended data from the intent. char getCharExtra(String name, char defaultValue) Retrieve extended data from the intent. CharSequence[] getCharSequenceArrayExtra(String name) Retrieve extended data from the intent. ArrayList<CharSequence> getCharSequenceArrayListExtra(String name) Retrieve extended data from the intent. CharSequence getCharSequenceExtra(String name) Retrieve extended data from the intent. ClipData getClipData() Return the ClipData associated with this Intent. ComponentName getComponent() Retrieve the concrete component associated with the intent. Uri getData() Retrieve data this intent is operating on. String getDataString() The same as getData() , but returns the URI as an encoded String. double[] getDoubleArrayExtra(String name) Retrieve extended data from the intent. double getDoubleExtra(String name, double defaultValue) Retrieve extended data from the intent. Bundle getExtras() Retrieves a map of extended data from the intent. int getFlags() Retrieve any special flags associated with this intent. float[] getFloatArrayExtra(String name) Retrieve extended data from the intent. float getFloatExtra(String name, float defaultValue) Retrieve extended data from the intent. String getIdentifier() Retrieve the identifier for this Intent. int[] getIntArrayExtra(String name) Retrieve extended data from the intent. int getIntExtra(String name, int defaultValue) Retrieve extended data from the intent. ArrayList<Integer> getIntegerArrayListExtra(String name) Retrieve extended data from the intent. static Intent getIntent(String uri) This method was deprecated in API level 15. Use parseUri(String, int) instead. static Intent getIntentOld(String uri) long[] getLongArrayExtra(String name) Retrieve extended data from the intent. long getLongExtra(String name, long defaultValue) Retrieve extended data from the intent. String getPackage() Retrieve the application package name this Intent is limited to. Parcelable[] getParcelableArrayExtra(String name) Retrieve extended data from the intent. <T extends Parcelable> ArrayList<T> getParcelableArrayListExtra(String name) Retrieve extended data from the intent. <T extends Parcelable> T getParcelableExtra(String name) Retrieve extended data from the intent. String getScheme() Return the scheme portion of the intent's data. Intent getSelector() Return the specific selector associated with this Intent. Serializable getSerializableExtra(String name) Retrieve extended data from the intent. short[] getShortArrayExtra(String name) Retrieve extended data from the intent. short getShortExtra(String name, short defaultValue) Retrieve extended data from the intent. Rect getSourceBounds() Get the bounds of the sender of this intent, in screen coordinates. String[] getStringArrayExtra(String name) Retrieve extended data from the intent. ArrayList<String> getStringArrayListExtra(String name) Retrieve extended data from the intent. String getStringExtra(String name) Retrieve extended data from the intent. String getType() Retrieve any explicit MIME type included in the intent. boolean hasCategory(String category) Check if a category exists in the intent. boolean hasExtra(String name) Returns true if an extra value is associated with the given name. boolean hasFileDescriptors() Returns true if the Intent's extras contain a parcelled file descriptor. static Intent makeMainActivity(ComponentName mainActivity) Create an intent to launch the main (root) activity of a task. static Intent makeMainSelectorActivity(String selectorAction, String selectorCategory) Make an Intent for the main activity of an application, without specifying a specific activity to run but giving a selector to find the activity. static Intent makeRestartActivityTask(ComponentName mainActivity) Make an Intent that can be used to re-launch an application's task in its base state. static String normalizeMimeType(String type) Normalize a MIME data type. static Intent parseIntent(Resources resources, XmlPullParser parser, AttributeSet attrs) Parses the "intent" element (and its children) from XML and instantiates an Intent object. static Intent parseUri(String uri, int flags) Create an intent from a URI. Intent putCharSequenceArrayListExtra(String name, ArrayList<CharSequence> value) Add extended data to the intent. Intent putExtra(String name, Parcelable value) Add extended data to the intent. Intent putExtra(String name, long[] value) Add extended data to the intent. Intent putExtra(String name, byte value) Add extended data to the intent. Intent putExtra(String name, double[] value) Add extended data to the intent. Intent putExtra(String name, CharSequence value) Add extended data to the intent. Intent putExtra(String name, boolean[] value) Add extended data to the intent. Intent putExtra(String name, int value) Add extended data to the intent. Intent putExtra(String name, char[] value) Add extended data to the intent. Intent putExtra(String name, byte[] value) Add extended data to the intent. Intent putExtra(String name, Parcelable[] value) Add extended data to the intent. Intent putExtra(String name, Bundle value) Add extended data to the intent. Intent putExtra(String name, CharSequence[] value) Add extended data to the intent. Intent putExtra(String name, float[] value) Add extended data to the intent. Intent putExtra(String name, double value) Add extended data to the intent. Intent putExtra(String name, int[] value) Add extended data to the intent. Intent putExtra(String name, String[] value) Add extended data to the intent. Intent putExtra(String name, short[] value) Add extended data to the intent. Intent putExtra(String name, boolean value) Add extended data to the intent. Intent putExtra(String name, String value) Add extended data to the intent. Intent putExtra(String name, long value) Add extended data to the intent. Intent putExtra(String name, char value) Add extended data to the intent. Intent putExtra(String name, Serializable value) Add extended data to the intent. Intent putExtra(String name, float value) Add extended data to the intent. Intent putExtra(String name, short value) Add extended data to the intent. Intent putExtras(Intent src) Copy all extras in 'src' in to this intent. Intent putExtras(Bundle extras) Add a set of extended data to the intent. Intent putIntegerArrayListExtra(String name, ArrayList<Integer> value) Add extended data to the intent. Intent putParcelableArrayListExtra(String name, ArrayList<? extends Parcelable> value) Add extended data to the intent. Intent putStringArrayListExtra(String name, ArrayList<String> value) Add extended data to the intent. void readFromParcel(Parcel in) void removeCategory(String category) Remove a category from an intent. void removeExtra(String name) Remove extended data from the intent. void removeFlags(int flags) Remove these flags from the intent. Intent replaceExtras(Intent src) Completely replace the extras in the Intent with the extras in the given Intent. Intent replaceExtras(Bundle extras) Completely replace the extras in the Intent with the given Bundle of extras. ComponentName resolveActivity(PackageManager pm) Return the Activity component that should be used to handle this intent. ActivityInfo resolveActivityInfo(PackageManager pm, int flags) Resolve the Intent into an ActivityInfo describing the activity that should execute the intent. String resolveType(Context context) Return the MIME data type of this intent. String resolveType(ContentResolver resolver) Return the MIME data type of this intent. String resolveTypeIfNeeded(ContentResolver resolver) Return the MIME data type of this intent, only if it will be needed for intent resolution. Intent setAction(String action) Set the general action to be performed. Intent setClass(Context packageContext, Class<?> cls) Convenience for calling setComponent(android.content.ComponentName) with the name returned by a Class object. Intent setClassName(String packageName, String className) Convenience for calling setComponent(ComponentName) with an explicit application package name and class name. Intent setClassName(Context packageContext, String className) Convenience for calling setComponent(ComponentName) with an explicit class name. void setClipData(ClipData clip) Set a ClipData associated with this Intent. Intent setComponent(ComponentName component) (Usually optional) Explicitly set the component to handle the intent. Intent setData(Uri data) Set the data this intent is operating on. Intent setDataAndNormalize(Uri data) Normalize and set the data this intent is operating on. Intent setDataAndType(Uri data, String type) (Usually optional) Set the data for the intent along with an explicit MIME data type. Intent setDataAndTypeAndNormalize(Uri data, String type) (Usually optional) Normalize and set both the data Uri and an explicit MIME data type. void setExtrasClassLoader(ClassLoader loader) Sets the ClassLoader that will be used when unmarshalling any Parcelable values from the extras of this Intent. Intent setFlags(int flags) Set special flags controlling how this intent is handled. Intent setIdentifier(String identifier) Set an identifier for this Intent. Intent setPackage(String packageName) (Usually optional) Set an explicit application package name that limits the components this Intent will resolve to. void setSelector(Intent selector) Set a selector for this Intent. void setSourceBounds(Rect r) Set the bounds of the sender of this intent, in screen coordinates. Intent setType(String type) Set an explicit MIME data type. Intent setTypeAndNormalize(String type) Normalize and set an explicit MIME data type. String toString() Returns a string representation of the object. String toURI() This method was deprecated in API level 15. Use toUri(int) instead. String toUri(int flags) Convert this Intent into a String holding a URI representation of it. void writeToParcel(Parcel out, int flags) Flatten this object in to a Parcel.

Inherited methods java.lang.Object From class Object clone() Creates and returns a copy of this object. boolean equals(Object obj) Indicates whether some other object is "equal to" this one. void finalize() Called by the garbage collector on an object when garbage collection determines that there are no more references to the object. final Class<?> getClass() Returns the runtime class of this Object . int hashCode() Returns a hash code value for the object. final void notify() Wakes up a single thread that is waiting on this object's monitor. final void notifyAll() Wakes up all threads that are waiting on this object's monitor. String toString() Returns a string representation of the object. final void wait(long timeout, int nanos) Causes the current thread to wait until another thread invokes the notify() method or the notifyAll() method for this object, or some other thread interrupts the current thread, or a certain amount of real time has elapsed. final void wait(long timeout) Causes the current thread to wait until either another thread invokes the notify() method or the notifyAll() method for this object, or a specified amount of time has elapsed. final void wait() Causes the current thread to wait until another thread invokes the notify() method or the notifyAll() method for this object. android.os.Parcelable From interface abstract int describeContents() Describe the kinds of special objects contained in this Parcelable instance's marshaled representation. abstract void writeToParcel(Parcel dest, int flags) Flatten this object in to a Parcel.

Constants

ACTION_AIRPLANE_MODE_CHANGED Added in API level 1 public static final String ACTION_AIRPLANE_MODE_CHANGED Broadcast Action: The user has switched the phone into or out of Airplane Mode. One or more radios have been turned off or on. The intent will have the following extra value: state - A boolean value indicating whether Airplane Mode is on. If true, then cell radio and possibly other radios such as bluetooth or WiFi may have also been turned off This is a protected intent that can only be sent by the system. Constant Value: "android.intent.action.AIRPLANE_MODE"

ACTION_ALL_APPS Added in API level 1 public static final String ACTION_ALL_APPS Activity Action: List all available applications. Input: Nothing. Output: nothing. Constant Value: "android.intent.action.ALL_APPS"

ACTION_ANSWER Added in API level 1 public static final String ACTION_ANSWER Activity Action: Handle an incoming phone call. Input: nothing. Output: nothing. Constant Value: "android.intent.action.ANSWER"

ACTION_APPLICATION_PREFERENCES Added in API level 24 public static final String ACTION_APPLICATION_PREFERENCES An activity that provides a user interface for adjusting application preferences. Optional but recommended settings for all applications which have settings. Constant Value: "android.intent.action.APPLICATION_PREFERENCES"

ACTION_APPLICATION_RESTRICTIONS_CHANGED Added in API level 21 public static final String ACTION_APPLICATION_RESTRICTIONS_CHANGED Broadcast Action: Sent after application restrictions are changed. This is a protected intent that can only be sent by the system. Constant Value: "android.intent.action.APPLICATION_RESTRICTIONS_CHANGED"

ACTION_APP_ERROR Added in API level 14 public static final String ACTION_APP_ERROR Activity Action: The user pressed the "Report" button in the crash/ANR dialog. This intent is delivered to the package which installed the application, usually Google Play. Input: No data is specified. The bug report is passed in using an EXTRA_BUG_REPORT field. Output: Nothing. See also: EXTRA_BUG_REPORT Constant Value: "android.intent.action.APP_ERROR"

ACTION_ASSIST Added in API level 16 public static final String ACTION_ASSIST Activity Action: Perform assist action. Input: EXTRA_ASSIST_PACKAGE , EXTRA_ASSIST_CONTEXT , can provide additional optional contextual information about where the user was when they requested the assist; EXTRA_REFERRER may be set with additional referrer information. Output: nothing. Constant Value: "android.intent.action.ASSIST"

ACTION_ATTACH_DATA Added in API level 1 public static final String ACTION_ATTACH_DATA Used to indicate that some piece of data should be attached to some other place. For example, image data could be attached to a contact. It is up to the recipient to decide where the data should be attached; the intent does not specify the ultimate destination. Input: getData() is URI of data to be attached. Output: nothing. Constant Value: "android.intent.action.ATTACH_DATA"

ACTION_AUTO_REVOKE_PERMISSIONS Added in API level 30 public static final String ACTION_AUTO_REVOKE_PERMISSIONS Activity action: Launch UI to manage auto-revoke state. This is equivalent to Intent#ACTION_APPLICATION_DETAILS_SETTINGS Input: Intent#setData should be a package -scheme Uri with a package name, whose auto-revoke state will be reviewed (mandatory). E.g. Uri.fromParts("package", packageName, null) Output: Nothing. Constant Value: "android.intent.action.AUTO_REVOKE_PERMISSIONS"

ACTION_BATTERY_CHANGED Added in API level 1 public static final String ACTION_BATTERY_CHANGED Broadcast Action: This is a sticky broadcast containing the charging state, level, and other information about the battery. See BatteryManager for documentation on the contents of the Intent. You cannot receive this through components declared in manifests, only by explicitly registering for it with Context#registerReceiver(BroadcastReceiver, IntentFilter) . See ACTION_BATTERY_LOW , ACTION_BATTERY_OKAY , ACTION_POWER_CONNECTED , and ACTION_POWER_DISCONNECTED for distinct battery-related broadcasts that are sent and can be received through manifest receivers. This is a protected intent that can only be sent by the system. Constant Value: "android.intent.action.BATTERY_CHANGED"

ACTION_BATTERY_LOW Added in API level 1 public static final String ACTION_BATTERY_LOW Broadcast Action: Indicates low battery condition on the device. This broadcast corresponds to the "Low battery warning" system dialog. This is a protected intent that can only be sent by the system. Constant Value: "android.intent.action.BATTERY_LOW"

ACTION_BATTERY_OKAY Added in API level 4 public static final String ACTION_BATTERY_OKAY Broadcast Action: Indicates the battery is now okay after being low. This will be sent after ACTION_BATTERY_LOW once the battery has gone back up to an okay state. This is a protected intent that can only be sent by the system. Constant Value: "android.intent.action.BATTERY_OKAY"

ACTION_BOOT_COMPLETED Added in API level 1 public static final String ACTION_BOOT_COMPLETED Broadcast Action: This is broadcast once, after the user has finished booting. It can be used to perform application-specific initialization, such as installing alarms. You must hold the Manifest.permission.RECEIVE_BOOT_COMPLETED permission in order to receive this broadcast. This broadcast is sent at boot by all devices (both with and without direct boot support). Upon receipt of this broadcast, the user is unlocked and both device-protected and credential-protected storage can accessed safely. If you need to run while the user is still locked (before they've entered their lock pattern or PIN for the first time), you can listen for the ACTION_LOCKED_BOOT_COMPLETED broadcast. This is a protected intent that can only be sent by the system. Constant Value: "android.intent.action.BOOT_COMPLETED"

ACTION_BUG_REPORT Added in API level 1 public static final String ACTION_BUG_REPORT Activity Action: Show activity for reporting a bug. Input: Nothing. Output: Nothing. Constant Value: "android.intent.action.BUG_REPORT"

ACTION_CALL Added in API level 1 public static final String ACTION_CALL Activity Action: Perform a call to someone specified by the data. Input: If nothing, an empty dialer is started; else getData() is URI of a phone number to be dialed or a tel: URI of an explicit phone number. Output: nothing. Note: there will be restrictions on which applications can initiate a call; most applications should use the ACTION_DIAL . Note: this Intent cannot be used to call emergency numbers. Applications can dial emergency numbers using ACTION_DIAL , however. Note: if you app targets M and above and declares as using the Manifest.permission.CALL_PHONE permission which is not granted, then attempting to use this action will result in a SecurityException . Constant Value: "android.intent.action.CALL"

ACTION_CALL_BUTTON Added in API level 1 public static final String ACTION_CALL_BUTTON Activity Action: The user pressed the "call" button to go to the dialer or other appropriate UI for placing a call. Input: Nothing. Output: Nothing. Constant Value: "android.intent.action.CALL_BUTTON"

ACTION_CAMERA_BUTTON Added in API level 1 public static final String ACTION_CAMERA_BUTTON Broadcast Action: The "Camera Button" was pressed. Includes a single extra field, EXTRA_KEY_EVENT , containing the key event that caused the broadcast. Constant Value: "android.intent.action.CAMERA_BUTTON"

ACTION_CARRIER_SETUP Added in API level 26 public static final String ACTION_CARRIER_SETUP Activity Action: Main entry point for carrier setup apps. Carrier apps that provide an implementation for this action may be invoked to configure carrier service and typically require carrier privileges to fulfill their duties. Constant Value: "android.intent.action.CARRIER_SETUP"

ACTION_CHOOSER Added in API level 1 public static final String ACTION_CHOOSER Activity Action: Display an activity chooser, allowing the user to pick what they want to before proceeding. This can be used as an alternative to the standard activity picker that is displayed by the system when you try to start an activity with multiple possible matches, with these differences in behavior: You can specify the title that will appear in the activity chooser.

The user does not have the option to make one of the matching activities a preferred activity, and all possible activities will always be shown even if one of them is currently marked as the preferred activity. This action should be used when the user will naturally expect to select an activity in order to proceed. An example if when not to use it is when the user clicks on a "mailto:" link. They would naturally expect to go directly to their mail app, so startActivity() should be called directly: it will either launch the current preferred app, or put up a dialog allowing the user to pick an app to use and optionally marking that as preferred. In contrast, if the user is selecting a menu item to send a picture they are viewing to someone else, there are many different things they may want to do at this point: send it through e-mail, upload it to a web service, etc. In this case the CHOOSER action should be used, to always present to the user a list of the things they can do, with a nice title given by the caller such as "Send this photo with:". If you need to grant URI permissions through a chooser, you must specify the permissions to be granted on the ACTION_CHOOSER Intent in addition to the EXTRA_INTENT inside. This means using setClipData(ClipData) to specify the URIs to be granted as well as FLAG_GRANT_READ_URI_PERMISSION and/or FLAG_GRANT_WRITE_URI_PERMISSION as appropriate. As a convenience, an Intent of this form can be created with the createChooser(Intent, CharSequence) function. Input: No data should be specified. get*Extra must have a EXTRA_INTENT field containing the Intent being executed, and can optionally have a EXTRA_TITLE field containing the title text to display in the chooser. Output: Depends on the protocol of EXTRA_INTENT . Constant Value: "android.intent.action.CHOOSER"

ACTION_CLOSE_SYSTEM_DIALOGS Added in API level 1 public static final String ACTION_CLOSE_SYSTEM_DIALOGS Broadcast Action: This is broadcast when a user action should request a temporary system dialog to dismiss. Some examples of temporary system dialogs are the notification window-shade and the recent tasks dialog. Constant Value: "android.intent.action.CLOSE_SYSTEM_DIALOGS"

ACTION_CONFIGURATION_CHANGED Added in API level 1 public static final String ACTION_CONFIGURATION_CHANGED Broadcast Action: The current device Configuration (orientation, locale, etc) has changed. When such a change happens, the UIs (view hierarchy) will need to be rebuilt based on this new information; for the most part, applications don't need to worry about this, because the system will take care of stopping and restarting the application to make sure it sees the new changes. Some system code that can not be restarted will need to watch for this action and handle it appropriately. You cannot receive this through components declared in manifests, only by explicitly registering for it with Context#registerReceiver(BroadcastReceiver, IntentFilter) . This is a protected intent that can only be sent by the system. See also: Configuration Constant Value: "android.intent.action.CONFIGURATION_CHANGED"

ACTION_CREATE_DOCUMENT Added in API level 19 public static final String ACTION_CREATE_DOCUMENT Activity Action: Allow the user to create a new document. When invoked, the system will display the various DocumentsProvider instances installed on the device, letting the user navigate through them. The returned document may be a newly created document with no content, or it may be an existing document with the requested MIME type. Each document is represented as a content:// URI backed by a DocumentsProvider , which can be opened as a stream with ContentResolver#openFileDescriptor(Uri, String) , or queried for DocumentsContract.Document metadata. Callers must indicate the concrete MIME type of the document being created by setting setType(java.lang.String) . This MIME type cannot be changed after the document is created. Callers can provide an initial display name through EXTRA_TITLE , but the user may change this value before creating the file. Callers must include CATEGORY_OPENABLE in the Intent to obtain URIs that can be opened with ContentResolver#openFileDescriptor(Uri, String) . Callers can set a document URI through DocumentsContract#EXTRA_INITIAL_URI to indicate the initial location of documents navigator. System will do its best to launch the navigator in the specified document if it's a folder, or the folder that contains the specified document if not. Output: The URI of the item that was created. This must be a content:// URI so that any receiver can access it. See also: DocumentsContract

ACTION_OPEN_DOCUMENT

ACTION_OPEN_DOCUMENT_TREE

FLAG_GRANT_PERSISTABLE_URI_PERMISSION Constant Value: "android.intent.action.CREATE_DOCUMENT"

ACTION_CREATE_REMINDER Added in API level 30 public static final String ACTION_CREATE_REMINDER Activity Action: Creates a reminder. Input: EXTRA_TITLE The title of the reminder that will be shown to the user. EXTRA_TEXT The reminder text that will be shown to the user. The intent should at least specify a title or a text. EXTRA_TIME The time when the reminder will be shown to the user. The time is specified in milliseconds since the Epoch (optional). Output: Nothing. See also: EXTRA_TITLE

EXTRA_TEXT

EXTRA_TIME Constant Value: "android.intent.action.CREATE_REMINDER"

ACTION_CREATE_SHORTCUT Added in API level 1 public static final String ACTION_CREATE_SHORTCUT Activity Action: Creates a shortcut. Input: Nothing. Output: An Intent representing the ShortcutInfo result. For compatibility with older versions of android the intent may also contain three extras: SHORTCUT_INTENT (value: Intent), SHORTCUT_NAME (value: String), and SHORTCUT_ICON (value: Bitmap) or SHORTCUT_ICON_RESOURCE (value: ShortcutIconResource). See also: ShortcutManager.createShortcutResultIntent(ShortcutInfo)

EXTRA_SHORTCUT_INTENT

EXTRA_SHORTCUT_NAME

EXTRA_SHORTCUT_ICON

EXTRA_SHORTCUT_ICON_RESOURCE

Intent.ShortcutIconResource Constant Value: "android.intent.action.CREATE_SHORTCUT"

Added in API level 1 public static final String ACTION_DATE_CHANGED Broadcast Action: The date has changed. Constant Value: "android.intent.action.DATE_CHANGED"

ACTION_DEFAULT Added in API level 1 public static final String ACTION_DEFAULT A synonym for ACTION_VIEW , the "standard" action that is performed on a piece of data. Constant Value: "android.intent.action.VIEW"

ACTION_DEFINE Added in API level 29 public static final String ACTION_DEFINE Activity Action: Define the meaning of the selected word(s). Input: getCharSequence(EXTRA_TEXT) is the text to define. Output: nothing. Constant Value: "android.intent.action.DEFINE"

ACTION_DELETE Added in API level 1 public static final String ACTION_DELETE Activity Action: Delete the given data from its container. Input: getData() is URI of data to be deleted. Output: nothing. Constant Value: "android.intent.action.DELETE"

ACTION_DEVICE_STORAGE_LOW

Deprecated in Added in API level 1 Deprecated in API level 26 public static final String ACTION_DEVICE_STORAGE_LOW This constant was deprecated in API level 26.

if your app targets Build.VERSION_CODES.O or above, this broadcast will no longer be delivered to any BroadcastReceiver defined in your manifest. Instead, apps are strongly encouraged to use the improved Context#getCacheDir() behavior so the system can automatically free up storage when needed. Broadcast Action: A sticky broadcast that indicates low storage space condition on the device This is a protected intent that can only be sent by the system. Constant Value: "android.intent.action.DEVICE_STORAGE_LOW"

ACTION_DEVICE_STORAGE_OK

Deprecated in Added in API level 1 Deprecated in API level 26 public static final String ACTION_DEVICE_STORAGE_OK This constant was deprecated in API level 26.

if your app targets Build.VERSION_CODES.O or above, this broadcast will no longer be delivered to any BroadcastReceiver defined in your manifest. Instead, apps are strongly encouraged to use the improved Context#getCacheDir() behavior so the system can automatically free up storage when needed. Broadcast Action: Indicates low storage space condition on the device no longer exists This is a protected intent that can only be sent by the system. Constant Value: "android.intent.action.DEVICE_STORAGE_OK"

ACTION_DIAL Added in API level 1 public static final String ACTION_DIAL Activity Action: Dial a number as specified by the data. This shows a UI with the number being dialed, allowing the user to explicitly initiate the call. Input: If nothing, an empty dialer is started; else getData() is URI of a phone number to be dialed or a tel: URI of an explicit phone number. Output: nothing. Constant Value: "android.intent.action.DIAL"

ACTION_DOCK_EVENT Added in API level 5 public static final String ACTION_DOCK_EVENT Broadcast Action: A sticky broadcast for changes in the physical docking state of the device. The intent will have the following extra values: EXTRA_DOCK_STATE - the current dock state, indicating which dock the device is physically in. This is intended for monitoring the current physical dock state. See UiModeManager for the normal API dealing with dock mode changes. Constant Value: "android.intent.action.DOCK_EVENT"

ACTION_DREAMING_STARTED Added in API level 17 public static final String ACTION_DREAMING_STARTED Broadcast Action: Sent after the system starts dreaming. This is a protected intent that can only be sent by the system. It is only sent to registered receivers. Constant Value: "android.intent.action.DREAMING_STARTED"

ACTION_DREAMING_STOPPED Added in API level 17 public static final String ACTION_DREAMING_STOPPED Broadcast Action: Sent after the system stops dreaming. This is a protected intent that can only be sent by the system. It is only sent to registered receivers. Constant Value: "android.intent.action.DREAMING_STOPPED"

ACTION_EDIT Added in API level 1 public static final String ACTION_EDIT Activity Action: Provide explicit editable access to the given data. Input: getData() is URI of data to be edited. Output: nothing. Constant Value: "android.intent.action.EDIT"

ACTION_EXTERNAL_APPLICATIONS_AVAILABLE Added in API level 8 public static final String ACTION_EXTERNAL_APPLICATIONS_AVAILABLE Broadcast Action: Resources for a set of packages (which were previously unavailable) are currently available since the media on which they exist is available. The extra data EXTRA_CHANGED_PACKAGE_LIST contains a list of packages whose availability changed. The extra data EXTRA_CHANGED_UID_LIST contains a list of uids of packages whose availability changed. Note that the packages in this list do not receive this broadcast. The specified set of packages are now available on the system. Includes the following extras: EXTRA_CHANGED_PACKAGE_LIST is the set of packages whose resources(were previously unavailable) are currently available. EXTRA_CHANGED_UID_LIST is the set of uids of the packages whose resources(were previously unavailable) are currently available. This is a protected intent that can only be sent by the system. Constant Value: "android.intent.action.EXTERNAL_APPLICATIONS_AVAILABLE"

ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE Added in API level 8 public static final String ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE Broadcast Action: Resources for a set of packages are currently unavailable since the media on which they exist is unavailable. The extra data EXTRA_CHANGED_PACKAGE_LIST contains a list of packages whose availability changed. The extra data EXTRA_CHANGED_UID_LIST contains a list of uids of packages whose availability changed. The specified set of packages can no longer be launched and are practically unavailable on the system. Inclues the following extras: EXTRA_CHANGED_PACKAGE_LIST is the set of packages whose resources are no longer available. EXTRA_CHANGED_UID_LIST is the set of packages whose resources are no longer available. This is a protected intent that can only be sent by the system. Constant Value: "android.intent.action.EXTERNAL_APPLICATIONS_UNAVAILABLE"

ACTION_FACTORY_TEST Added in API level 1 public static final String ACTION_FACTORY_TEST Activity Action: Main entry point for factory tests. Only used when the device is booting in factory test node. The implementing package must be installed in the system image. Input: nothing Output: nothing Constant Value: "android.intent.action.FACTORY_TEST"

ACTION_GET_CONTENT Added in API level 1 public static final String ACTION_GET_CONTENT Activity Action: Allow the user to select a particular kind of data and return it. This is different than ACTION_PICK in that here we just say what kind of data is desired, not a URI of existing data from which the user can pick. An ACTION_GET_CONTENT could allow the user to create the data as it runs (for example taking a picture or recording a sound), let them browse over the web and download the desired data, etc. There are two main ways to use this action: if you want a specific kind of data, such as a person contact, you set the MIME type to the kind of data you want and launch it with Context#startActivity(Intent) . The system will then launch the best application to select that kind of data for you. You may also be interested in any of a set of types of content the user can pick. For example, an e-mail application that wants to allow the user to add an attachment to an e-mail message can use this action to bring up a list of all of the types of content the user can attach. In this case, you should wrap the GET_CONTENT intent with a chooser (through createChooser(Intent, CharSequence) ), which will give the proper interface for the user to pick how to send your data and allow you to specify a prompt indicating what they are doing. You will usually specify a broad MIME type (such as image/* or */*), resulting in a broad range of content types the user can select from. When using such a broad GET_CONTENT action, it is often desirable to only pick from data that can be represented as a stream. This is accomplished by requiring the CATEGORY_OPENABLE in the Intent. Callers can optionally specify EXTRA_LOCAL_ONLY to request that the launched content chooser only returns results representing data that is locally available on the device. For example, if this extra is set to true then an image picker should not show any pictures that are available from a remote server but not already on the local device (thus requiring they be downloaded when opened). If the caller can handle multiple returned items (the user performing multiple selection), then it can specify EXTRA_ALLOW_MULTIPLE to indicate this. Input: getType() is the desired MIME type to retrieve. Note that no URI is supplied in the intent, as there are no constraints on where the returned data originally comes from. You may also include the CATEGORY_OPENABLE if you can only accept data that can be opened as a stream. You may use EXTRA_LOCAL_ONLY to limit content selection to local data. You may use EXTRA_ALLOW_MULTIPLE to allow the user to select multiple items. Output: The URI of the item that was picked. This must be a content: URI so that any receiver can access it. Constant Value: "android.intent.action.GET_CONTENT"

ACTION_GET_RESTRICTION_ENTRIES Added in API level 18 public static final String ACTION_GET_RESTRICTION_ENTRIES Broadcast to a specific application to query any supported restrictions to impose on restricted users. The broadcast intent contains an extra EXTRA_RESTRICTIONS_BUNDLE with the currently persisted restrictions as a Bundle of key/value pairs. The value types can be Boolean, String or String[] depending on the restriction type. The response should contain an extra EXTRA_RESTRICTIONS_LIST , which is of type ArrayList<RestrictionEntry> . It can also contain an extra EXTRA_RESTRICTIONS_INTENT , which is of type Intent . The activity specified by that intent will be launched for a result which must contain one of the extras EXTRA_RESTRICTIONS_LIST or EXTRA_RESTRICTIONS_BUNDLE . The keys and values of the returned restrictions will be persisted. See also: RestrictionEntry The response should contain an extra, which is of type. It can also contain an extra, which is of type. The activity specified by that intent will be launched for a result which must contain one of the extrasor. The keys and values of the returned restrictions will be persisted. Constant Value: "android.intent.action.GET_RESTRICTION_ENTRIES"

ACTION_GTALK_SERVICE_CONNECTED Added in API level 1 public static final String ACTION_GTALK_SERVICE_CONNECTED Broadcast Action: A GTalk connection has been established. Constant Value: "android.intent.action.GTALK_CONNECTED"

ACTION_GTALK_SERVICE_DISCONNECTED Added in API level 1 public static final String ACTION_GTALK_SERVICE_DISCONNECTED Broadcast Action: A GTalk connection has been disconnected. Constant Value: "android.intent.action.GTALK_DISCONNECTED"

ACTION_HEADSET_PLUG Added in API level 1 public static final String ACTION_HEADSET_PLUG Broadcast Action: Wired Headset plugged in or unplugged. Same as AudioManager.ACTION_HEADSET_PLUG , to be consulted for value and documentation. If the minimum SDK version of your application is Build.VERSION_CODES.LOLLIPOP , it is recommended to refer to the AudioManager constant in your receiver registration code instead. Constant Value: "android.intent.action.HEADSET_PLUG"

ACTION_INPUT_METHOD_CHANGED Added in API level 3 public static final String ACTION_INPUT_METHOD_CHANGED Broadcast Action: An input method has been changed. Constant Value: "android.intent.action.INPUT_METHOD_CHANGED"

ACTION_INSERT Added in API level 1 public static final String ACTION_INSERT Activity Action: Insert an empty item into the given container. Input: getData() is URI of the directory (vnd.android.cursor.dir/*) in which to place the data. Output: URI of the new data that was created. Constant Value: "android.intent.action.INSERT"

ACTION_INSERT_OR_EDIT Added in API level 1 public static final String ACTION_INSERT_OR_EDIT Activity Action: Pick an existing item, or insert a new item, and then edit it. Input: getType() is the desired MIME type of the item to create or edit. The extras can contain type specific data to pass through to the editing/creating activity. Output: The URI of the item that was picked. This must be a content: URI so that any receiver can access it. Constant Value: "android.intent.action.INSERT_OR_EDIT"

ACTION_INSTALL_FAILURE Added in API level 27 public static final String ACTION_INSTALL_FAILURE Activity Action: Activity to handle split installation failures. Splits may be installed dynamically. This happens when an Activity is launched, but the split that contains the application isn't installed. When a split is installed in this manner, the containing package usually doesn't know this is happening. However, if an error occurs during installation, the containing package can define a single activity handling this action to deal with such failures. The activity handling this action must be in the base package. Input: EXTRA_INTENT the original intent that started split installation. EXTRA_SPLIT_NAME the name of the split that failed to be installed. Constant Value: "android.intent.action.INSTALL_FAILURE"

ACTION_INSTALL_PACKAGE

Deprecated in Added in API level 14 Deprecated in API level 29 public static final String ACTION_INSTALL_PACKAGE This constant was deprecated in API level 29.

use PackageInstaller instead Activity Action: Launch application installer. Input: The data must be a content: URI at which the application can be retrieved. As of Build.VERSION_CODES.JELLY_BEAN_MR1 , you can also use "package: " to install an application for the current user that is already installed for another user. You can optionally supply EXTRA_INSTALLER_PACKAGE_NAME , EXTRA_NOT_UNKNOWN_SOURCE , EXTRA_ALLOW_REPLACE , and EXTRA_RETURN_RESULT . Output: If EXTRA_RETURN_RESULT , returns whether the install succeeded. Note:If your app is targeting API level higher than 25 you need to hold Manifest.permission.REQUEST_INSTALL_PACKAGES in order to launch the application installer. See also: EXTRA_INSTALLER_PACKAGE_NAME

EXTRA_NOT_UNKNOWN_SOURCE

EXTRA_RETURN_RESULT Constant Value: "android.intent.action.INSTALL_PACKAGE"

ACTION_LOCALE_CHANGED Added in API level 7 public static final String ACTION_LOCALE_CHANGED Broadcast Action: The current device's locale has changed. This is a protected intent that can only be sent by the system. Constant Value: "android.intent.action.LOCALE_CHANGED"

ACTION_LOCKED_BOOT_COMPLETED Added in API level 24 public static final String ACTION_LOCKED_BOOT_COMPLETED Broadcast Action: This is broadcast once, after the user has finished booting, but while still in the "locked" state. It can be used to perform application-specific initialization, such as installing alarms. You must hold the Manifest.permission.RECEIVE_BOOT_COMPLETED permission in order to receive this broadcast. This broadcast is sent immediately at boot by all devices (regardless of direct boot support) running Build.VERSION_CODES.N or higher. Upon receipt of this broadcast, the user is still locked and only device-protected storage can be accessed safely. If you want to access credential-protected storage, you need to wait for the user to be unlocked (typically by entering their lock pattern or PIN for the first time), after which the ACTION_USER_UNLOCKED and ACTION_BOOT_COMPLETED broadcasts are sent. To receive this broadcast, your receiver component must be marked as being ComponentInfo#directBootAware . This is a protected intent that can only be sent by the system. See also: Context.createDeviceProtectedStorageContext() Constant Value: "android.intent.action.LOCKED_BOOT_COMPLETED"

ACTION_MAIN Added in API level 1 public static final String ACTION_MAIN Activity Action: Start as a main entry point, does not expect to receive data. Input: nothing Output: nothing Constant Value: "android.intent.action.MAIN"

ACTION_MANAGED_PROFILE_ADDED Added in API level 21 public static final String ACTION_MANAGED_PROFILE_ADDED Broadcast sent to the primary user when an associated managed profile is added (the profile was created and is ready to be used). Carries an extra EXTRA_USER that specifies the UserHandle of the profile that was added. Only applications (for example Launchers) that need to display merged content across both primary and managed profiles need to worry about this broadcast. This is only sent to registered receivers, not manifest receivers. Constant Value: "android.intent.action.MANAGED_PROFILE_ADDED"

ACTION_MANAGED_PROFILE_AVAILABLE Added in API level 24 public static final String ACTION_MANAGED_PROFILE_AVAILABLE Broadcast sent to the primary user when an associated managed profile has become available. Currently this includes when the user disables quiet mode for the profile. Carries an extra EXTRA_USER that specifies the UserHandle of the profile. When quiet mode is changed, this broadcast will carry a boolean extra EXTRA_QUIET_MODE indicating the new state of quiet mode. This is only sent to registered receivers, not manifest receivers. Constant Value: "android.intent.action.MANAGED_PROFILE_AVAILABLE"

ACTION_MANAGED_PROFILE_REMOVED Added in API level 21 public static final String ACTION_MANAGED_PROFILE_REMOVED Broadcast sent to the primary user when an associated managed profile is removed. Carries an extra EXTRA_USER that specifies the UserHandle of the profile that was removed. Only applications (for example Launchers) that need to display merged content across both primary and managed profiles need to worry about this broadcast. This is only sent to registered receivers, not manifest receivers. Constant Value: "android.intent.action.MANAGED_PROFILE_REMOVED"

ACTION_MANAGED_PROFILE_UNAVAILABLE Added in API level 24 public static final String ACTION_MANAGED_PROFILE_UNAVAILABLE Broadcast sent to the primary user when an associated managed profile has become unavailable. Currently this includes when the user enables quiet mode for the profile. Carries an extra EXTRA_USER that specifies the UserHandle of the profile. When quiet mode is changed, this broadcast will carry a boolean extra EXTRA_QUIET_MODE indicating the new state of quiet mode. This is only sent to registered receivers, not manifest receivers. Constant Value: "android.intent.action.MANAGED_PROFILE_UNAVAILABLE"

ACTION_MANAGED_PROFILE_UNLOCKED Added in API level 24 public static final String ACTION_MANAGED_PROFILE_UNLOCKED Broadcast sent to the primary user when the credential-encrypted private storage for an associated managed profile is unlocked. Carries an extra EXTRA_USER that specifies the UserHandle of the profile that was unlocked. Only applications (for example Launchers) that need to display merged content across both primary and managed profiles need to worry about this broadcast. This is only sent to registered receivers, not manifest receivers. Constant Value: "android.intent.action.MANAGED_PROFILE_UNLOCKED"

ACTION_MANAGE_NETWORK_USAGE Added in API level 14 public static final String ACTION_MANAGE_NETWORK_USAGE Activity Action: Show settings for managing network data usage of a specific application. Applications should define an activity that offers options to control data usage. Constant Value: "android.intent.action.MANAGE_NETWORK_USAGE"

ACTION_MANAGE_PACKAGE_STORAGE Added in API level 1 public static final String ACTION_MANAGE_PACKAGE_STORAGE Broadcast Action: Indicates low memory condition notification acknowledged by user and package management should be started. This is triggered by the user from the ACTION_DEVICE_STORAGE_LOW notification. Constant Value: "android.intent.action.MANAGE_PACKAGE_STORAGE"

ACTION_MEDIA_BAD_REMOVAL Added in API level 1 public static final String ACTION_MEDIA_BAD_REMOVAL Broadcast Action: External media was removed from SD card slot, but mount point was not unmounted. The path to the mount point for the removed media is contained in the Intent.mData field. Constant Value: "android.intent.action.MEDIA_BAD_REMOVAL"

ACTION_MEDIA_BUTTON Added in API level 1 public static final String ACTION_MEDIA_BUTTON Broadcast Action: The "Media Button" was pressed. Includes a single extra field, EXTRA_KEY_EVENT , containing the key event that caused the broadcast. Constant Value: "android.intent.action.MEDIA_BUTTON"

ACTION_MEDIA_CHECKING Added in API level 3 public static final String ACTION_MEDIA_CHECKING Broadcast Action: External media is present, and being disk-checked The path to the mount point for the checking media is contained in the Intent.mData field. Constant Value: "android.intent.action.MEDIA_CHECKING"

ACTION_MEDIA_EJECT Added in API level 1 public static final String ACTION_MEDIA_EJECT Broadcast Action: User has expressed the desire to remove the external storage media. Applications should close all files they have open within the mount point when they receive this intent. The path to the mount point for the media to be ejected is contained in the Intent.mData field. Constant Value: "android.intent.action.MEDIA_EJECT"

ACTION_MEDIA_MOUNTED Added in API level 1 public static final String ACTION_MEDIA_MOUNTED Broadcast Action: External media is present and mounted at its mount point. The path to the mount point for the mounted media is contained in the Intent.mData field. The Intent contains an extra with name "read-only" and Boolean value to indicate if the media was mounted read only. Constant Value: "android.intent.action.MEDIA_MOUNTED"

ACTION_MEDIA_NOFS Added in API level 3 public static final String ACTION_MEDIA_NOFS Broadcast Action: External media is present, but is using an incompatible fs (or is blank) The path to the mount point for the checking media is contained in the Intent.mData field. Constant Value: "android.intent.action.MEDIA_NOFS"

ACTION_MEDIA_REMOVED Added in API level 1 public static final String ACTION_MEDIA_REMOVED Broadcast Action: External media has been removed. The path to the mount point for the removed media is contained in the Intent.mData field. Constant Value: "android.intent.action.MEDIA_REMOVED"

ACTION_MEDIA_SCANNER_FINISHED Added in API level 1 public static final String ACTION_MEDIA_SCANNER_FINISHED Broadcast Action: The media scanner has finished scanning a directory. The path to the scanned directory is contained in the Intent.mData field. Constant Value: "android.intent.action.MEDIA_SCANNER_FINISHED"

ACTION_MEDIA_SCANNER_SCAN_FILE

Deprecated in Added in API level 1 Deprecated in API level 29 public static final String ACTION_MEDIA_SCANNER_SCAN_FILE This constant was deprecated in API level 29.

Callers should migrate to inserting items directly into MediaStore , where they will be automatically scanned after each mutation. Broadcast Action: Request the media scanner to scan a file and add it to the media database. The path to the file is contained in Intent#getData() . Constant Value: "android.intent.action.MEDIA_SCANNER_SCAN_FILE"

ACTION_MEDIA_SCANNER_STARTED Added in API level 1 public static final String ACTION_MEDIA_SCANNER_STARTED Broadcast Action: The media scanner has started scanning a directory. The path to the directory being scanned is contained in the Intent.mData field. Constant Value: "android.intent.action.MEDIA_SCANNER_STARTED"

ACTION_MEDIA_SHARED Added in API level 1 public static final String ACTION_MEDIA_SHARED Broadcast Action: External media is unmounted because it is being shared via USB mass storage. The path to the mount point for the shared media is contained in the Intent.mData field. Constant Value: "android.intent.action.MEDIA_SHARED"

ACTION_MEDIA_UNMOUNTABLE Added in API level 1 public static final String ACTION_MEDIA_UNMOUNTABLE Broadcast Action: External media is present but cannot be mounted. The path to the mount point for the unmountable media is contained in the Intent.mData field. Constant Value: "android.intent.action.MEDIA_UNMOUNTABLE"

ACTION_MEDIA_UNMOUNTED Added in API level 1 public static final String ACTION_MEDIA_UNMOUNTED Broadcast Action: External media is present, but not mounted at its mount point. The path to the mount point for the unmounted media is contained in the Intent.mData field. Constant Value: "android.intent.action.MEDIA_UNMOUNTED"

ACTION_MY_PACKAGE_REPLACED Added in API level 12 public static final String ACTION_MY_PACKAGE_REPLACED Broadcast Action: A new version of your application has been installed over an existing one. This is only sent to the application that was replaced. It does not contain any additional data; to receive it, just use an intent filter for this action. This is a protected intent that can only be sent by the system. Constant Value: "android.intent.action.MY_PACKAGE_REPLACED"

ACTION_MY_PACKAGE_SUSPENDED Added in API level 28 public static final String ACTION_MY_PACKAGE_SUSPENDED Broadcast Action: Sent to a package that has been suspended by the system. This is sent whenever a package is put into a suspended state or any of its app extras change while in the suspended state. Optionally includes the following extras: EXTRA_SUSPENDED_PACKAGE_EXTRAS which is a Bundle which will contain useful information for the app being suspended. This is a protected intent that can only be sent by the system. This will be delivered to BroadcastReceiver components declared in the manifest. See also: ACTION_MY_PACKAGE_UNSUSPENDED

EXTRA_SUSPENDED_PACKAGE_EXTRAS

PackageManager.isPackageSuspended()

PackageManager.getSuspendedPackageAppExtras() Constant Value: "android.intent.action.MY_PACKAGE_SUSPENDED"

ACTION_MY_PACKAGE_UNSUSPENDED Added in API level 28 public static final String ACTION_MY_PACKAGE_UNSUSPENDED Broadcast Action: Sent to a package that has been unsuspended. This is a protected intent that can only be sent by the system. This will be delivered to BroadcastReceiver components declared in the manifest. See also: ACTION_MY_PACKAGE_SUSPENDED

EXTRA_SUSPENDED_PACKAGE_EXTRAS

PackageManager.isPackageSuspended()

PackageManager.getSuspendedPackageAppExtras() Constant Value: "android.intent.action.MY_PACKAGE_UNSUSPENDED"

ACTION_NEW_OUTGOING_CALL

Deprecated in Added in API level 1 Deprecated in API level 29 public static final String ACTION_NEW_OUTGOING_CALL This constant was deprecated in API level 29.

Apps that redirect outgoing calls should use the CallRedirectionService API. Apps that perform call screening should use the CallScreeningService API. Apps which need to be notified of basic call state should use PhoneStateListener.onCallStateChanged(int, String) to determine when a new outgoing call is placed. Broadcast Action: An outgoing call is about to be placed. The Intent will have the following extra value: EXTRA_PHONE_NUMBER - the phone number originally intended to be dialed. Once the broadcast is finished, the resultData is used as the actual number to call. If null , no call will be placed. It is perfectly acceptable for multiple receivers to process the outgoing call in turn: for example, a parental control application might verify that the user is authorized to place the call at that time, then a number-rewriting application might add an area code if one was not specified. For consistency, any receiver whose purpose is to prohibit phone calls should have a priority of 0, to ensure it will see the final phone number to be dialed. Any receiver whose purpose is to rewrite phone numbers to be called should have a positive priority. Negative priorities are reserved for the system for this broadcast; using them may cause problems. Any BroadcastReceiver receiving this Intent must not abort the broadcast. Emergency calls cannot be intercepted using this mechanism, and other calls cannot be modified to call emergency numbers using this mechanism. Some apps (such as VoIP apps) may want to redirect the outgoing call to use their own service instead. Those apps should first prevent the call from being placed by setting resultData to null and then start their own app to make the call. You must hold the Manifest.permission.PROCESS_OUTGOING_CALLS permission to receive this Intent. This is a protected intent that can only be sent by the system. If the user has chosen a CallRedirectionService to handle redirection of outgoing calls, this intent will NOT be sent as an ordered broadcast. This means that attempts to re-write the outgoing call by other apps using this intent will be ignored. Constant Value: "android.intent.action.NEW_OUTGOING_CALL"

ACTION_OPEN_DOCUMENT Added in API level 19 public static final String ACTION_OPEN_DOCUMENT Activity Action: Allow the user to select and return one or more existing documents. When invoked, the system will display the various DocumentsProvider instances installed on the device, letting the user interactively navigate through them. These documents include local media, such as photos and video, and documents provided by installed cloud storage providers. Each document is represented as a content:// URI backed by a DocumentsProvider , which can be opened as a stream with ContentResolver#openFileDescriptor(Uri, String) , or queried for DocumentsContract.Document metadata. All selected documents are returned to the calling application with persistable read and write permission grants. If you want to maintain access to the documents across device reboots, you need to explicitly take the persistable permissions using ContentResolver#takePersistableUriPermission(Uri, int) . Callers must indicate the acceptable document MIME types through setType(java.lang.String) . For example, to select photos, use image/* . If multiple disjoint MIME types are acceptable, define them in EXTRA_MIME_TYPES and setType(java.lang.String) to */*. If the caller can handle multiple returned items (the user performing multiple selection), then you can specify EXTRA_ALLOW_MULTIPLE to indicate this. Callers must include CATEGORY_OPENABLE in the Intent to obtain URIs that can be opened with ContentResolver#openFileDescriptor(Uri, String) . Callers can set a document URI through DocumentsContract#EXTRA_INITIAL_URI to indicate the initial location of documents navigator. System will do its best to launch the navigator in the specified document if it's a folder, or the folder that contains the specified document if not. Output: The URI of the item that was picked, returned in getData() . This must be a content:// URI so that any receiver can access it. If multiple documents were selected, they are returned in getClipData() . See also: DocumentsContract

ACTION_OPEN_DOCUMENT_TREE

ACTION_CREATE_DOCUMENT

FLAG_GRANT_PERSISTABLE_URI_PERMISSION Constant Value: "android.intent.action.OPEN_DOCUMENT"

ACTION_OPEN_DOCUMENT_TREE Added in API level 21 public static final String ACTION_OPEN_DOCUMENT_TREE Activity Action: Allow the user to pick a directory subtree. When invoked, the system will display the various DocumentsProvider instances installed on the device, letting the user navigate through them. Apps can fully manage documents within the returned directory. To gain access to descendant (child, grandchild, etc) documents, use DocumentsContract#buildDocumentUriUsingTree(Uri, String) and DocumentsContract#buildChildDocumentsUriUsingTree(Uri, String) with the returned URI. Callers can set a document URI through DocumentsContract#EXTRA_INITIAL_URI to indicate the initial location of documents navigator. System will do its best to launch the navigator in the specified document if it's a folder, or the folder that contains the specified document if not. Output: The URI representing the selected directory tree. See also: DocumentsContract Constant Value: "android.intent.action.OPEN_DOCUMENT_TREE"

ACTION_PACKAGES_SUSPENDED Added in API level 24 public static final String ACTION_PACKAGES_SUSPENDED Broadcast Action: Packages have been suspended. Includes the following extras: EXTRA_CHANGED_PACKAGE_LIST is the set of packages which have been suspended

is the set of packages which have been suspended EXTRA_CHANGED_UID_LIST is the set of uids which have been suspended This is a protected intent that can only be sent by the system. It is only sent to registered receivers. Constant Value: "android.intent.action.PACKAGES_SUSPENDED"

ACTION_PACKAGES_UNSUSPENDED Added in API level 24 public static final String ACTION_PACKAGES_UNSUSPENDED Broadcast Action: Packages have been unsuspended. Includes the following extras: EXTRA_CHANGED_PACKAGE_LIST is the set of packages which have been unsuspended

is the set of packages which have been unsuspended EXTRA_CHANGED_UID_LIST is the set of uids which have been unsuspended This is a protected intent that can only be sent by the system. It is only sent to registered receivers. Constant Value: "android.intent.action.PACKAGES_UNSUSPENDED"

ACTION_PACKAGE_ADDED Added in API level 1 public static final String ACTION_PACKAGE_ADDED Broadcast Action: A new application package has been installed on the device. The data contains the name of the package. Note that the newly installed package does not receive this broadcast. May include the following extras: EXTRA_UID containing the integer uid assigned to the new package.

containing the integer uid assigned to the new package. EXTRA_REPLACING is set to true if this is following an ACTION_PACKAGE_REMOVED broadcast for the same package. This is a protected intent that can only be sent by the system. Constant Value: "android.intent.action.PACKAGE_ADDED"

ACTION_PACKAGE_CHANGED Added in API level 1 public static final String ACTION_PACKAGE_CHANGED Broadcast Action: An existing application package has been changed (for example, a component has been enabled or disabled). The data contains the name of the package. EXTRA_UID containing the integer uid assigned to the package.

containing the integer uid assigned to the package. EXTRA_CHANGED_COMPONENT_NAME_LIST containing the class name of the changed components (or the package name itself).

containing the class name of the changed components (or the package name itself). EXTRA_DONT_KILL_APP containing boolean field to override the default action of restarting the application. This is a protected intent that can only be sent by the system. Constant Value: "android.intent.action.PACKAGE_CHANGED"

ACTION_PACKAGE_DATA_CLEARED Added in API level 3 public static final String ACTION_PACKAGE_DATA_CLEARED Broadcast Action: The user has cleared the data of a package. This should be preceded by ACTION_PACKAGE_RESTARTED , after which all of its persistent data is erased and this broadcast sent. Note that the cleared package does not receive this broadcast. The data contains the name of the package. EXTRA_UID containing the integer uid assigned to the package. If the package whose data was cleared is an uninstalled instant app, then the UID will be -1. The platform keeps some meta-data associated with instant apps after they are uninstalled.

containing the integer uid assigned to the package. If the package whose data was cleared is an uninstalled instant app, then the UID will be -1. The platform keeps some meta-data associated with instant apps after they are uninstalled. EXTRA_PACKAGE_NAME containing the package name only if the cleared data was for an instant app. This is a protected intent that can only be sent by the system. Constant Value: "android.intent.action.PACKAGE_DATA_CLEARED"

ACTION_PACKAGE_FIRST_LAUNCH Added in API level 12 public static final String ACTION_PACKAGE_FIRST_LAUNCH Broadcast Action: Sent to the installer package of an application when that application is first launched (that is the first time it is moved out of the stopped state). The data contains the name of the package. When the application is first launched, the application itself doesn't receive this broadcast. This is a protected intent that can only be sent by the system. Constant Value: "android.intent.action.PACKAGE_FIRST_LAUNCH"

ACTION_PACKAGE_FULLY_REMOVED Added in API level 14 public static final String ACTION_PACKAGE_FULLY_REMOVED Broadcast Action: An existing application package has been completely removed from the device. The data contains the name of the package. This is like ACTION_PACKAGE_REMOVED , but only set when EXTRA_DATA_REMOVED is true and EXTRA_REPLACING is false of that broadcast. EXTRA_UID containing the integer uid previously assigned to the package. This is a protected intent that can only be sent by the system. Constant Value: "android.intent.action.PACKAGE_FULLY_REMOVED"

ACTION_PACKAGE_INSTALL

Deprecated in Added in API level 1 Deprecated in API level 15 public static final String ACTION_PACKAGE_INSTALL This constant was deprecated in API level 15.

This constant has never been used. Broadcast Action: Trigger the download and eventual installation of a package. Input: getData() is the URI of the package file to download. This is a protected intent that can only be sent by the system. Constant Value: "android.intent.action.PACKAGE_INSTALL"

ACTION_PACKAGE_NEEDS_VERIFICATION Added in API level 14 public static final String ACTION_PACKAGE_NEEDS_VERIFICATION Broadcast Action: Sent to the system package verifier when a package needs to be verified. The data contains the package URI. This is a protected intent that can only be sent by the system. Constant Value: "android.intent.action.PACKAGE_NEEDS_VERIFICATION"

ACTION_PACKAGE_REMOVED Added in API level 1 public static final String ACTION_PACKAGE_REMOVED Broadcast Action: An existing application package has been removed from the device. The data contains the name of the package. The package that is being removed does not receive this Intent. EXTRA_UID containing the integer uid previously assigned to the package.

containing the integer uid previously assigned to the package. EXTRA_DATA_REMOVED is set to true if the entire application -- data and code -- is being removed.

is set to true if the entire application -- data and code -- is being removed. EXTRA_REPLACING is set to true if this will be followed by an ACTION_PACKAGE_ADDED broadcast for the same package. This is a protected intent that can only be sent by the system. Constant Value: "android.intent.action.PACKAGE_REMOVED"

ACTION_PACKAGE_REPLACED Added in API level 3 public static final String ACTION_PACKAGE_REPLACED Broadcast Action: A new version of an application package has been installed, replacing an existing version that was previously installed. The data contains the name of the package. May include the following extras: EXTRA_UID containing the integer uid assigned to the new package. This is a protected intent that can only be sent by the system. Constant Value: "android.intent.action.PACKAGE_REPLACED"

ACTION_PACKAGE_RESTARTED Added in API level 1 public static final String ACTION_PACKAGE_RESTARTED Broadcast Action: The user has restarted a package, and all of its processes have been killed. All runtime state associated with it (processes, alarms, notifications, etc) should be removed. Note that the restarted package does not receive this broadcast. The data contains the name of the package. EXTRA_UID containing the integer uid assigned to the package. This is a protected intent that can only be sent by the system. Constant Value: "android.intent.action.PACKAGE_RESTARTED"

ACTION_PACKAGE_VERIFIED Added in API level 17 public static final String ACTION_PACKAGE_VERIFIED Broadcast Action: Sent to the system package verifier when a package is verified. The data contains the package URI. This is a protected intent that can only be sent by the system. Constant Value: "android.intent.action.PACKAGE_VERIFIED"

ACTION_PASTE Added in API level 11 public static final String ACTION_PASTE Activity Action: Create a new item in the given container, initializing it from the current contents of the clipboard. Input: getData() is URI of the directory (vnd.android.cursor.dir/*) in which to place the data. Output: URI of the new data that was created. Constant Value: "android.intent.action.PASTE"

ACTION_PICK Added in API level 1 public static final String ACTION_PICK Activity Action: Pick an item from the data, returning what was selected. Input: getData() is URI containing a directory of data (vnd.android.cursor.dir/*) from which to pick an item. Output: The URI of the item that was picked. Constant Value: "android.intent.action.PICK"

ACTION_PICK_ACTIVITY Added in API level 1 public static final String ACTION_PICK_ACTIVITY Activity Action: Pick an activity given an intent, returning the class selected. Input: get*Extra field EXTRA_INTENT is an Intent used with PackageManager#queryIntentActivities to determine the set of activities from which to pick. Output: Class name of the activity that was selected. Constant Value: "android.intent.action.PICK_ACTIVITY"

ACTION_POWER_CONNECTED Added in API level 4 public static final String ACTION_POWER_CONNECTED Broadcast Action: External power has been connected to the device. This is intended for applications that wish to register specifically to this notification. Unlike ACTION_BATTERY_CHANGED, applications will be woken for this and so do not have to stay active to receive this notification. This action can be used to implement actions that wait until power is available to trigger. This is a protected intent that can only be sent by the system. Constant Value: "android.intent.action.ACTION_POWER_CONNECTED"

ACTION_POWER_DISCONNECTED Added in API level 4 public static final String ACTION_POWER_DISCONNECTED Broadcast Action: External power has been removed from the device. This is intended for applications that wish to register specifically to this notification. Unlike ACTION_BATTERY_CHANGED, applications will be woken for this and so do not have to stay active to receive this notification. This action can be used to implement actions that wait until power is available to trigger. This is a protected intent that can only be sent by the system. Constant Value: "android.intent.action.ACTION_POWER_DISCONNECTED"

ACTION_POWER_USAGE_SUMMARY Added in API level 4 public static final String ACTION_POWER_USAGE_SUMMARY Activity Action: Show power usage information to the user. Input: Nothing. Output: Nothing. Constant Value: "android.intent.action.POWER_USAGE_SUMMARY"

ACTION_PROCESS_TEXT Added in API level 23 public static final String ACTION_PROCESS_TEXT Activity Action: Process a piece of text. Input: EXTRA_PROCESS_TEXT contains the text to be processed. EXTRA_PROCESS_TEXT_READONLY states if the resulting text will be read-only. Output: EXTRA_PROCESS_TEXT contains the processed text. Constant Value: "android.intent.action.PROCESS_TEXT"

ACTION_PROVIDER_CHANGED Added in API level 1 public static final String ACTION_PROVIDER_CHANGED Broadcast Action: Some content providers have parts of their namespace where they publish new events or items that the user may be especially interested in. For these things, they may broadcast this action when the set of interesting items change. For example, GmailProvider sends this notification when the set of unread mail in the inbox changes. The data of the intent identifies which part of which provider changed. When queried through the content resolver, the data URI will return the data set in question. The intent will have the following extra values: count - The number of items in the data set. This is the same as the number of items in the cursor returned by querying the data URI. This intent will be sent at boot (if the count is non-zero) and when the data set changes. It is possible for the data set to change without the count changing (for example, if a new unread message arrives in the same sync operation in which a message is archived). The phone should still ring/vibrate/etc as normal in this case. This intent will be sent at boot (if the count is non-zero) and when the data set changes. It is possible for the data set to change without the count changing (for example, if a new unread message arrives in the same sync operation in which a message is archived). The phone should still ring/vibrate/etc as normal in this case. Constant Value: "android.intent.action.PROVIDER_CHANGED"

ACTION_QUICK_CLOCK Added in API level 17 public static final String ACTION_QUICK_CLOCK Sent when the user taps on the clock widget in the system's "quick settings" area. Constant Value: "android.intent.action.QUICK_CLOCK"

ACTION_QUICK_VIEW Added in API level 24 public static final String ACTION_QUICK_VIEW Activity Action: Quick view the data. Launches a quick viewer for a URI or a list of URIs. Activities handling this intent action should handle the vast majority of MIME types rather than only specific ones. Quick viewers must render the quick view image locally, and must not send file content outside current device. Input: getData() is a mandatory content URI of the item to preview. getClipData() contains an optional list of content URIs if there is more than one item to preview. EXTRA_INDEX is an optional index of the URI in the clip data to show first. EXTRA_QUICK_VIEW_FEATURES is an optional extra indicating the features that can be shown in the quick view UI. Output: nothing. See also: EXTRA_INDEX

EXTRA_QUICK_VIEW_FEATURES Constant Value: "android.intent.action.QUICK_VIEW"

ACTION_REBOOT Added in API level 1 public static final String ACTION_REBOOT Broadcast Action: Have the device reboot. This is only for use by system code. This is a protected intent that can only be sent by the system. Constant Value: "android.intent.action.REBOOT"

ACTION_RUN Added in API level 1 public static final String ACTION_RUN Activity Action: Run the data, whatever that means. Input: ? (Note: this is currently specific to the test harness.) Output: nothing. Constant Value: "android.intent.action.RUN"

ACTION_SCREEN_OFF Added in API level 1 public static final String ACTION_SCREEN_OFF Broadcast Action: Sent when the device goes to sleep and becomes non-interactive. For historical reasons, the name of this broadcast action refers to the power state of the screen but it is actually sent in response to changes in the overall interactive state of the device. This broadcast is sent when the device becomes non-interactive which may have nothing to do with the screen turning off. To determine the actual state of the screen, use Display.getState() . See PowerManager.isInteractive() for details. You cannot receive this through components declared in manifests, only by explicitly registering for it with Context#registerReceiver(BroadcastReceiver, IntentFilter) . You cannot receive this through components declared in manifests, only by explicitly registering for it with This is a protected intent that can only be sent by the system. Constant Value: "android.intent.action.SCREEN_OFF"

ACTION_SCREEN_ON Added in API level 1 public static final String ACTION_SCREEN_ON Broadcast Action: Sent when the device wakes up and becomes interactive. For historical reasons, the name of this broadcast action refers to the power state of the screen but it is actually sent in response to changes in the overall interactive state of the device. This broadcast is sent when the device becomes interactive which may have nothing to do with the screen turning on. To determine the actual state of the screen, use Display.getState() . See PowerManager.isInteractive() for details. You cannot receive this through components declared in manifests, only by explicitly registering for it with Context#registerReceiver(BroadcastReceiver, IntentFilter) . You cannot receive this through components declared in manifests, only by explicitly registering for it with This is a protected intent that can only be sent by the system. Constant Value: "android.intent.action.SCREEN_ON"

ACTION_SEARCH Added in API level 1 public static final String ACTION_SEARCH Activity Action: Perform a search. Input: getStringExtra(SearchManager.QUERY) is the text to search for. If empty, simply enter your search results Activity with the search UI activated. Output: nothing. Constant Value: "android.intent.action.SEARCH"

ACTION_SEARCH_LONG_PRESS Added in API level 3 public static final String ACTION_SEARCH_LONG_PRESS Activity Action: Start action associated with long pressing on the search key. Input: Nothing. Output: Nothing. Constant Value: "android.intent.action.SEARCH_LONG_PRESS"

ACTION_SEND Added in API level 1 public static final String ACTION_SEND Activity Action: Deliver some data to someone else. Who the data is being delivered to is not specified; it is up to the receiver of this action to ask the user where the data should be sent. When launching a SEND intent, you should usually wrap it in a chooser (through createChooser(Intent, CharSequence) ), which will give the proper interface for the user to pick how to send your data and allow you to specify a prompt indicating what they are doing. Input: getType() is the MIME type of the data being sent. get*Extra can have either a EXTRA_TEXT or EXTRA_STREAM field, containing the data to be sent. If using EXTRA_TEXT, the MIME type should be "text/plain"; otherwise it should be the MIME type of the data in EXTRA_STREAM. Use */* if the MIME type is unknown (this will only allow senders that can handle generic data streams). If using EXTRA_TEXT , you can also optionally supply EXTRA_HTML_TEXT for clients to retrieve your text with HTML formatting. As of Build.VERSION_CODES.JELLY_BEAN , the data being sent can be supplied through setClipData(android.content.ClipData) . This allows you to use FLAG_GRANT_READ_URI_PERMISSION when sharing content: URIs and other advanced features of ClipData . If using this approach, you still must supply the same data through the EXTRA_TEXT or EXTRA_STREAM fields described below for compatibility with old applications. If you don't set a ClipData, it will be copied there for you when calling Context#startActivity(Intent) . Starting from Build.VERSION_CODES.O , if CATEGORY_TYPED_OPENABLE is passed, then the Uris passed in either EXTRA_STREAM or via setClipData(android.content.ClipData) may be openable only as asset typed files using ContentResolver#openTypedAssetFileDescriptor(Uri, String, Bundle) . Optional standard extras, which may be interpreted by some recipients as appropriate, are: EXTRA_EMAIL , EXTRA_CC , EXTRA_BCC , EXTRA_SUBJECT . Output: nothing. Constant Value: "android.intent.action.SEND"

ACTION_SENDTO Added in API level 1 public static final String ACTION_SENDTO Activity Action: Send a message to someone specified by the data. Input: getData() is URI describing the target. Output: nothing. Constant Value: "android.intent.action.SENDTO"

ACTION_SEND_MULTIPLE Added in API level 4 public static final String ACTION_SEND_MULTIPLE Activity Action: Deliver multiple data to someone else. Like ACTION_SEND , except the data is multiple. Input: getType() is the MIME type of the data being sent. get*ArrayListExtra can have either a EXTRA_TEXT or EXTRA_STREAM field, containing the data to be sent. If using EXTRA_TEXT , you can also optionally supply EXTRA_HTML_TEXT for clients to retrieve your text with HTML formatting. Multiple types are supported, and receivers should handle mixed types whenever possible. The right way for the receiver to check them is to use the content resolver on each URI. The intent sender should try to put the most concrete mime type in the intent type, but it can fall back to <type>/* or */* as needed. e.g. if you are sending image/jpg and image/jpg, the intent's type can be image/jpg, but if you are sending image/jpg and image/png, then the intent's type should be image/*. As of Build.VERSION_CODES.JELLY_BEAN , the data being sent can be supplied through setClipData(android.content.ClipData) . This allows you to use FLAG_GRANT_READ_URI_PERMISSION when sharing content: URIs and other advanced features of ClipData . If using this approach, you still must supply the same data through the EXTRA_TEXT or EXTRA_STREAM fields described below for compatibility with old applications. If you don't set a ClipData, it will be copied there for you when calling Context#startActivity(Intent) . Starting from Build.VERSION_CODES.O , if CATEGORY_TYPED_OPENABLE is passed, then the Uris passed in either EXTRA_STREAM or via setClipData(android.content.ClipData) may be openable only as asset typed files using ContentResolver#openTypedAssetFileDescriptor(Uri, String, Bundle) . Optional standard extras, which may be interpreted by some recipients as appropriate, are: EXTRA_EMAIL , EXTRA_CC , EXTRA_BCC , EXTRA_SUBJECT . Output: nothing. Constant Value: "android.intent.action.SEND_MULTIPLE"

ACTION_SET_WALLPAPER Added in API level 1 public static final String ACTION_SET_WALLPAPER Activity Action: Show settings for choosing wallpaper. Input: Nothing. Output: Nothing. Constant Value: "android.intent.action.SET_WALLPAPER"

ACTION_SHOW_APP_INFO Added in API level 24 public static final String ACTION_SHOW_APP_INFO Activity Action: Launch an activity showing the app information. For applications which install other applications (such as app stores), it is recommended to handle this action for providing the app information to the user. Input: EXTRA_PACKAGE_NAME specifies the package whose information needs to be displayed. Output: Nothing. Constant Value: "android.intent.action.SHOW_APP_INFO"

ACTION_SHUTDOWN Added in API level 4 public static final String ACTION_SHUTDOWN Broadcast Action: Device is shutting down. This is broadcast when the device is being shut down (completely turned off, not sleeping). Once the broadcast is complete, the final shutdown will proceed and all unsaved data lost. Apps will not normally need to handle this, since the foreground activity will be paused as well. As of Build.VERSION_CODES#P this broadcast is only sent to receivers registered through Context#registerReceiver(BroadcastReceiver, IntentFilter) . This is a protected intent that can only be sent by the system. May include the following extras: EXTRA_SHUTDOWN_USERSPACE_ONLY a boolean that is set to true if this shutdown is only for userspace processes. If not set, assumed to be false. Constant Value: "android.intent.action.ACTION_SHUTDOWN"

ACTION_SYNC Added in API level 1 public static final String ACTION_SYNC Activity Action: Perform a data synchronization. Input: ? Output: ? Constant Value: "android.intent.action.SYNC"

ACTION_SYSTEM_TUTORIAL Added in API level 3 public static final String ACTION_SYSTEM_TUTORIAL Activity Action: Start the platform-defined tutorial Input: getStringExtra(SearchManager.QUERY) is the text to search for. If empty, simply enter your search results Activity with the search UI activated. Output: nothing. Constant Value: "android.intent.action.SYSTEM_TUTORIAL"

ACTION_TIMEZONE_CHANGED Added in API level 1 public static final String ACTION_TIMEZONE_CHANGED Broadcast Action: The timezone has changed. The intent will have the following extra values: EXTRA_TIMEZONE - The java.util.TimeZone.getID() value identifying the new time zone. This is a protected intent that can only be sent by the system. Constant Value: "android.intent.action.TIMEZONE_CHANGED"

ACTION_TIME_CHANGED Added in API level 1 public static final String ACTION_TIME_CHANGED Broadcast Action: The time was set. Constant Value: "android.intent.action.TIME_SET"

ACTION_TIME_TICK Added in API level 1 public static final String ACTION_TIME_TICK Broadcast Action: The current time has changed. Sent every minute. You cannot receive this through components declared in manifests, only by explicitly registering for it with Context#registerReceiver(BroadcastReceiver, IntentFilter) . This is a protected intent that can only be sent by the system. Constant Value: "android.intent.action.TIME_TICK"

ACTION_TRANSLATE Added in API level 29 public static final String ACTION_TRANSLATE Activity Action: Perform text translation. Input: getCharSequence(EXTRA_TEXT) is the text to translate. Output: nothing. Constant Value: "android.intent.action.TRANSLATE"

ACTION_UID_REMOVED Added in API level 1 public static final String ACTION_UID_REMOVED Broadcast Action: A user ID has been removed from the system. The user ID number is stored in the extra data under EXTRA_UID . This is a protected intent that can only be sent by the system. Constant Value: "android.intent.action.UID_REMOVED"

ACTION_UMS_CONNECTED

Deprecated in Added in API level 1 Deprecated in API level 15 public static final String ACTION_UMS_CONNECTED This constant was deprecated in API level 15.

replaced by android.os.storage.StorageEventListener Broadcast Action: The device has entered USB Mass Storage mode. This is used mainly for the USB Settings panel. Apps should listen for ACTION_MEDIA_MOUNTED and ACTION_MEDIA_UNMOUNTED broadcasts to be notified when the SD card file system is mounted or unmounted Constant Value: "android.intent.action.UMS_CONNECTED"

ACTION_UMS_DISCONNECTED

Deprecated in Added in API level 1 Deprecated in API level 15 public static final String ACTION_UMS_DISCONNECTED This constant was deprecated in API level 15.

replaced by android.os.storage.StorageEventListener Broadcast Action: The device has exited USB Mass Storage mode. This is used mainly for the USB Settings panel. Apps should listen for ACTION_MEDIA_MOUNTED and ACTION_MEDIA_UNMOUNTED broadcasts to be notified when the SD card file system is mounted or unmounted Constant Value: "android.intent.action.UMS_DISCONNECTED"

ACTION_UNINS