Notification.Action

public static class Notification.Action
extends Object implements Parcelable

java.lang.Object
   ↳ android.app.Notification.Action


Structure to encapsulate a named action that can be shown as part of this notification. It must include an icon, a label, and a PendingIntent to be fired when the action is selected by the user.

Apps should use Notification.Builder#addAction(int, CharSequence, PendingIntent) or Notification.Builder#addAction(Notification.Action) to attach actions.

As of Android Build.VERSION_CODES.S, apps targeting API level Build.VERSION_CODES.S or higher won't be able to start activities while processing broadcast receivers or services in response to notification action clicks. To launch an activity in those cases, provide a PendingIntent for the activity itself.

Summary

Nested classes

class Notification.Action.Builder

Builder class for Action objects. 

interface Notification.Action.Extender

Extender interface for use with Builder#extend

class Notification.Action.WearableExtender

Wearable extender for notification actions. 

Constants

int SEMANTIC_ACTION_ARCHIVE

SemanticAction: Archive the content associated with the notification.

int SEMANTIC_ACTION_CALL

SemanticAction: Call a contact, group, etc.

int SEMANTIC_ACTION_DELETE

SemanticAction: Delete the content associated with the notification.

int SEMANTIC_ACTION_MARK_AS_READ

SemanticAction: Mark content as read.

int SEMANTIC_ACTION_MARK_AS_UNREAD

SemanticAction: Mark content as unread.

int SEMANTIC_ACTION_MUTE

SemanticAction: Mute the content associated with the notification.

int SEMANTIC_ACTION_NONE

No semantic action defined.

int SEMANTIC_ACTION_REPLY

SemanticAction: Reply to a conversation, chat, group, or wherever replies may be appropriate.

int SEMANTIC_ACTION_THUMBS_DOWN

SemanticAction: Mark content with a thumbs down.

int SEMANTIC_ACTION_THUMBS_UP

SemanticAction: Mark content with a thumbs up.

int SEMANTIC_ACTION_UNMUTE

SemanticAction: Unmute the content associated with the notification.

Inherited constants

Fields

public static final Creator<Notification.Action> CREATOR

public PendingIntent actionIntent

Intent to send when the user invokes this action.

public int icon

This field was deprecated in API level 23. Use Action#getIcon() instead.

public CharSequence title

Title of the action.

Public constructors

Action(int icon, CharSequence title, PendingIntent intent)

This constructor is deprecated. Use Notification.Action.Builder.

Public methods

Notification.Action clone()

Creates and returns a copy of this object.

int describeContents()

Describe the kinds of special objects contained in this Parcelable instance's marshaled representation.

boolean getAllowGeneratedReplies()

Return whether the platform should automatically generate possible replies for this Action

RemoteInput[] getDataOnlyRemoteInputs()

Get the list of inputs to be collected from the user that ONLY accept data when this action is sent.

Bundle getExtras()

Get additional metadata carried around with this Action.

Icon getIcon()

Return an icon representing the action.

RemoteInput[] getRemoteInputs()

Get the list of inputs to be collected from the user when this action is sent.

int getSemanticAction()

Returns the SemanticAction associated with this Action.

boolean isAuthenticationRequired()

Returns whether the OS should only send this action's PendingIntent on an unlocked device.

boolean isContextual()

Returns whether this is a contextual Action, i.e.

void writeToParcel(Parcel out, int flags)

Flatten this object in to a Parcel.

Inherited methods

Constants

SEMANTIC_ACTION_ARCHIVE

Added in API level 28
public static final int SEMANTIC_ACTION_ARCHIVE

SemanticAction: Archive the content associated with the notification. This could mean archiving an email, message, etc.

Constant Value: 5 (0x00000005)

SEMANTIC_ACTION_CALL

Added in API level 28
public static final int SEMANTIC_ACTION_CALL

SemanticAction: Call a contact, group, etc.

Constant Value: 10 (0x0000000a)

SEMANTIC_ACTION_DELETE

Added in API level 28
public static final int SEMANTIC_ACTION_DELETE

SemanticAction: Delete the content associated with the notification. This could mean deleting an email, message, etc.

Constant Value: 4 (0x00000004)

SEMANTIC_ACTION_MARK_AS_READ

Added in API level 28
public static final int SEMANTIC_ACTION_MARK_AS_READ

SemanticAction: Mark content as read.

Constant Value: 2 (0x00000002)

SEMANTIC_ACTION_MARK_AS_UNREAD

Added in API level 28
public static final int SEMANTIC_ACTION_MARK_AS_UNREAD

SemanticAction: Mark content as unread.

Constant Value: 3 (0x00000003)

SEMANTIC_ACTION_MUTE

Added in API level 28
public static final int SEMANTIC_ACTION_MUTE

SemanticAction: Mute the content associated with the notification. This could mean silencing a conversation or currently playing media.

Constant Value: 6 (0x00000006)

SEMANTIC_ACTION_NONE

Added in API level 28
public static final int SEMANTIC_ACTION_NONE

No semantic action defined.

Constant Value: 0 (0x00000000)

SEMANTIC_ACTION_REPLY

Added in API level 28
public static final int SEMANTIC_ACTION_REPLY

SemanticAction: Reply to a conversation, chat, group, or wherever replies may be appropriate.

Constant Value: 1 (0x00000001)

SEMANTIC_ACTION_THUMBS_DOWN

Added in API level 28
public static final int SEMANTIC_ACTION_THUMBS_DOWN

SemanticAction: Mark content with a thumbs down.

Constant Value: 9 (0x00000009)

SEMANTIC_ACTION_THUMBS_UP

Added in API level 28
public static final int SEMANTIC_ACTION_THUMBS_UP

SemanticAction: Mark content with a thumbs up.

Constant Value: 8 (0x00000008)

SEMANTIC_ACTION_UNMUTE

Added in API level 28
public static final int SEMANTIC_ACTION_UNMUTE

SemanticAction: Unmute the content associated with the notification. This could mean un-silencing a conversation or currently playing media.

Constant Value: 7 (0x00000007)

Fields

CREATOR

Added in API level 19
public static final Creator<Notification.Action> CREATOR

actionIntent

Added in API level 19
public PendingIntent actionIntent

Intent to send when the user invokes this action. May be null, in which case the action may be rendered in a disabled presentation by the system UI.

icon

Added in API level 19
Deprecated in API level 23
public int icon

This field was deprecated in API level 23.
Use Action#getIcon() instead.

Small icon representing the action.

title

Added in API level 19
public CharSequence title

Title of the action.

Public constructors

Action

Added in API level 19
public Action (int icon, 
                CharSequence title, 
                PendingIntent intent)

This constructor is deprecated.
Use Notification.Action.Builder.

Parameters
icon int

title CharSequence

intent PendingIntent: This value may be null.

Public methods

clone

Added in API level 19
public Notification.Action clone ()

Creates and returns a copy of this object. The precise meaning of "copy" may depend on the class of the object. The general intent is that, for any object x, the expression:

 x.clone() != x
will be true, and that the expression:
 x.clone().getClass() == x.getClass()
will be true, but these are not absolute requirements. While it is typically the case that:
 x.clone().equals(x)
will be true, this is not an absolute requirement.

By convention, the returned object should be obtained by calling super.clone. If a class and all of its superclasses (except Object) obey this convention, it will be the case that x.clone().getClass() == x.getClass().

By convention, the object returned by this method should be independent of this object (which is being cloned). To achieve this independence, it may be necessary to modify one or more fields of the object returned by super.clone before returning it. Typically, this means copying any mutable objects that comprise the internal "deep structure" of the object being cloned and replacing the references to these objects with references to the copies. If a class contains only primitive fields or references to immutable objects, then it is usually the case that no fields in the object returned by super.clone need to be modified.

Returns
Notification.Action a clone of this instance.

describeContents

Added in API level 19
public int describeContents ()

Describe the kinds of special objects contained in this Parcelable instance's marshaled representation. For example, if the object will include a file descriptor in the output of writeToParcel(android.os.Parcel, int), the return value of this method must include the CONTENTS_FILE_DESCRIPTOR bit.

Returns
int a bitmask indicating the set of special object types marshaled by this Parcelable object instance. Value is either 0 or CONTENTS_FILE_DESCRIPTOR

getAllowGeneratedReplies

Added in API level 24
public boolean getAllowGeneratedReplies ()

Return whether the platform should automatically generate possible replies for this Action

Returns
boolean

getDataOnlyRemoteInputs

Added in API level 26
public RemoteInput[] getDataOnlyRemoteInputs ()

Get the list of inputs to be collected from the user that ONLY accept data when this action is sent. These remote inputs are guaranteed to return true on a call to RemoteInput#isDataOnly. Returns null if there are no data-only remote inputs. This method exists so that legacy RemoteInput collectors that pre-date the addition of non-textual RemoteInputs do not access these remote inputs.

Returns
RemoteInput[]

getExtras

Added in API level 20
public Bundle getExtras ()

Get additional metadata carried around with this Action.

Returns
Bundle

getIcon

Added in API level 23
public Icon getIcon ()

Return an icon representing the action.

Returns
Icon

getRemoteInputs

Added in API level 20
public RemoteInput[] getRemoteInputs ()

Get the list of inputs to be collected from the user when this action is sent. May return null if no remote inputs were added. Only returns inputs which accept a text input. For inputs which only accept data use getDataOnlyRemoteInputs().

Returns
RemoteInput[]

getSemanticAction

Added in API level 28
public int getSemanticAction ()

Returns the SemanticAction associated with this Action. A SemanticAction denotes what an Action's PendingIntent will do (eg. reply, mark as read, delete, etc).

Returns
int Value is SEMANTIC_ACTION_NONE, SEMANTIC_ACTION_REPLY, SEMANTIC_ACTION_MARK_AS_READ, SEMANTIC_ACTION_MARK_AS_UNREAD, SEMANTIC_ACTION_DELETE, SEMANTIC_ACTION_ARCHIVE, SEMANTIC_ACTION_MUTE, SEMANTIC_ACTION_UNMUTE, SEMANTIC_ACTION_THUMBS_UP, SEMANTIC_ACTION_THUMBS_DOWN, SEMANTIC_ACTION_CALL, android.app.Notification.Action.SEMANTIC_ACTION_MARK_CONVERSATION_AS_PRIORITY, or android.app.Notification.Action.SEMANTIC_ACTION_CONVERSATION_IS_PHISHING

isAuthenticationRequired

Added in API level 31
public boolean isAuthenticationRequired ()

Returns whether the OS should only send this action's PendingIntent on an unlocked device. If the device is locked when the action is invoked, the OS should show the keyguard and require successful authentication before invoking the intent.

Returns
boolean

isContextual

Added in API level 29
public boolean isContextual ()

Returns whether this is a contextual Action, i.e. whether the action is dependent on the notification message body. An example of a contextual action could be an action opening a map application with an address shown in the notification.

Returns
boolean

writeToParcel

Added in API level 19
public void writeToParcel (Parcel out, 
                int flags)

Flatten this object in to a Parcel.

Parameters
out Parcel: The Parcel in which the object should be written. This value cannot be null.

flags int: Additional flags about how the object should be written. May be 0 or Parcelable.PARCELABLE_WRITE_RETURN_VALUE. Value is either 0 or a combination of Parcelable.PARCELABLE_WRITE_RETURN_VALUE, and android.os.Parcelable.PARCELABLE_ELIDE_DUPLICATES