ShortcutInfo

public final class ShortcutInfo
extends Object implements Parcelable

java.lang.Object
   ↳ android.content.pm.ShortcutInfo


Represents a shortcut that can be published via ShortcutManager.

See also:

Summary

Nested classes

class ShortcutInfo.Builder

Builder class for ShortcutInfo objects. 

Constants

int DISABLED_REASON_APP_CHANGED

Shortcut has been disabled due to changes to the publisher app.

int DISABLED_REASON_BACKUP_NOT_SUPPORTED

Shortcut has not been restored because the publisher app does not support backup and restore.

int DISABLED_REASON_BY_APP

Shortcut has been disabled by the publisher app with the ShortcutManager#disableShortcuts(List) API.

int DISABLED_REASON_NOT_DISABLED

Shortcut is not disabled.

int DISABLED_REASON_OTHER_RESTORE_ISSUE

Shortcut has not been restored for unknown reason.

int DISABLED_REASON_SIGNATURE_MISMATCH

Shortcut has not been restored because the publisher app's signature has changed.

int DISABLED_REASON_UNKNOWN

Shortcut is disabled for an unknown reason.

int DISABLED_REASON_VERSION_LOWER

Shortcut has been restored from the previous device, but the publisher app on the current device is of a lower version.

String SHORTCUT_CATEGORY_CONVERSATION

Shortcut category for messaging related actions, such as chat.

int SURFACE_LAUNCHER

Indicates system surfaces managed by a launcher app.

Inherited constants

Fields

public static final Creator<ShortcutInfo> CREATOR

Public methods

static ShortcutInfo createFromGenericDocument(Context context, GenericDocument document)

Convert a GenericDocument into a ShortcutInfo.

int describeContents()

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

ComponentName getActivity()

Return the target activity.

List<Capability> getCapabilities()

Return a list of Capability associated with the shortcut.

List<CapabilityParams> getCapabilityParams(Capability capability)

Returns the CapabilityParams in associated with given capability.

Set<String> getCategories()

Return the shortcut's categories.

CharSequence getDisabledMessage()

Return the message that should be shown when the user attempts to start a shortcut that is disabled.

int getDisabledReason()

Returns why a shortcut has been disabled.

int getExcludedFromSurfaces()

Returns a bitmask of all surfaces this shortcut is excluded from.

PersistableBundle getExtras()

Extras that the app can set for any purpose.

String getId()

Returns the ID of a shortcut.

Intent getIntent()

Returns the intent that is executed when the user selects this shortcut.

Intent[] getIntents()

Return the intent set with Builder#setIntents(Intent[]).

long getLastChangedTimestamp()

Last time when any of the fields was updated.

LocusId getLocusId()

Gets the LocusId associated with this shortcut.

CharSequence getLongLabel()

Return the long description of a shortcut.

String getPackage()

Return the package name of the publisher app.

int getRank()

"Rank" of a shortcut, which is a non-negative, sequential value that's unique for each getActivity() for each of the two types of shortcuts (static and dynamic).

CharSequence getShortLabel()

Return the short description of a shortcut.

UserHandle getUserHandle()

UserHandle on which the publisher created this shortcut.

boolean hasKeyFieldsOnly()

Return whether a shortcut only contains "key" information only or not.

boolean isCached()

Return whether a shortcut is cached.

boolean isDeclaredInManifest()

Return whether a shortcut is static; that is, whether a shortcut is published from AndroidManifest.xml.

boolean isDynamic()

Return whether a shortcut is dynamic.

boolean isEnabled()

Returns false if a shortcut is disabled with ShortcutManager#disableShortcuts.

boolean isExcludedFromSurfaces(int surface)

Return true if the shortcut is excluded from specified surface.

boolean isImmutable()

Return if a shortcut is immutable, in which case it cannot be modified with any of ShortcutManager APIs.

boolean isPinned()

Return whether a shortcut is pinned.

String toString()

Return a string representation, intended for logging.

void writeToParcel(Parcel dest, int flags)

Flatten this object in to a Parcel.

Inherited methods

Constants

DISABLED_REASON_APP_CHANGED

Added in API level 28
public static final int DISABLED_REASON_APP_CHANGED

Shortcut has been disabled due to changes to the publisher app. (e.g. a manifest shortcut no longer exists.)

Constant Value: 2 (0x00000002)

DISABLED_REASON_BACKUP_NOT_SUPPORTED

Added in API level 28
public static final int DISABLED_REASON_BACKUP_NOT_SUPPORTED

Shortcut has not been restored because the publisher app does not support backup and restore.

Constant Value: 101 (0x00000065)

DISABLED_REASON_BY_APP

Added in API level 28
public static final int DISABLED_REASON_BY_APP

Shortcut has been disabled by the publisher app with the ShortcutManager#disableShortcuts(List) API.

Constant Value: 1 (0x00000001)

DISABLED_REASON_NOT_DISABLED

Added in API level 28
public static final int DISABLED_REASON_NOT_DISABLED

Shortcut is not disabled.

Constant Value: 0 (0x00000000)

DISABLED_REASON_OTHER_RESTORE_ISSUE

Added in API level 28
public static final int DISABLED_REASON_OTHER_RESTORE_ISSUE

Shortcut has not been restored for unknown reason.

Constant Value: 103 (0x00000067)

DISABLED_REASON_SIGNATURE_MISMATCH

Added in API level 28
public static final int DISABLED_REASON_SIGNATURE_MISMATCH

Shortcut has not been restored because the publisher app's signature has changed.

Constant Value: 102 (0x00000066)

DISABLED_REASON_UNKNOWN

Added in API level 28
public static final int DISABLED_REASON_UNKNOWN

Shortcut is disabled for an unknown reason.

Constant Value: 3 (0x00000003)

DISABLED_REASON_VERSION_LOWER

Added in API level 28
public static final int DISABLED_REASON_VERSION_LOWER

Shortcut has been restored from the previous device, but the publisher app on the current device is of a lower version. The shortcut will not be usable until the app is upgraded to the same version or higher.

Constant Value: 100 (0x00000064)

SHORTCUT_CATEGORY_CONVERSATION

Added in API level 25
public static final String SHORTCUT_CATEGORY_CONVERSATION

Shortcut category for messaging related actions, such as chat.

Constant Value: "android.shortcut.conversation"

SURFACE_LAUNCHER

Added in API level 33
public static final int SURFACE_LAUNCHER

Indicates system surfaces managed by a launcher app. e.g. Long-Press Menu.

Constant Value: 1 (0x00000001)

Fields

CREATOR

Added in API level 25
public static final Creator<ShortcutInfo> CREATOR

Public methods

createFromGenericDocument

Added in API level 33
public static ShortcutInfo createFromGenericDocument (Context context, 
                GenericDocument document)

Convert a GenericDocument into a ShortcutInfo.

Parameters
context Context: Client context This value cannot be null.

document GenericDocument: An instance of GenericDocument that represents the shortcut. This value cannot be null.

Returns
ShortcutInfo This value cannot be null.

describeContents

Added in API level 25
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

getActivity

Added in API level 25
public ComponentName getActivity ()

Return the target activity.

This has nothing to do with the activity that this shortcut will launch. Launcher apps should show the launcher icon for the returned activity alongside this shortcut.

Returns
ComponentName This value may be null.

getCapabilities

Added in API level 33
public List<Capability> getCapabilities ()

Return a list of Capability associated with the shortcut.

Returns
List<Capability> This value cannot be null.

getCapabilityParams

Added in API level 33
public List<CapabilityParams> getCapabilityParams (Capability capability)

Returns the CapabilityParams in associated with given capability.

Parameters
capability Capability: Capability associated with the shortcut. This value cannot be null.

Returns
List<CapabilityParams> This value cannot be null.

getCategories

Added in API level 25
public Set<String> getCategories ()

Return the shortcut's categories.

Returns
Set<String> This value may be null.

getDisabledMessage

Added in API level 25
public CharSequence getDisabledMessage ()

Return the message that should be shown when the user attempts to start a shortcut that is disabled.

Returns
CharSequence This value may be null.

getExcludedFromSurfaces

Added in API level 33
public int getExcludedFromSurfaces ()

Returns a bitmask of all surfaces this shortcut is excluded from.

Returns
int Value is either 0 or SURFACE_LAUNCHER

getExtras

Added in API level 25
public PersistableBundle getExtras ()

Extras that the app can set for any purpose.

Returns
PersistableBundle This value may be null.

getId

Added in API level 25
public String getId ()

Returns the ID of a shortcut.

Shortcut IDs are unique within each publisher app and must be stable across devices so that shortcuts will still be valid when restored on a different device. See ShortcutManager for details.

Returns
String This value cannot be null.

getIntent

Added in API level 25
public Intent getIntent ()

Returns the intent that is executed when the user selects this shortcut. If setIntents() was used, then return the last intent in the array.

Launcher apps cannot see the intent. If a ShortcutInfo is obtained via LauncherApps, then this method will always return null. Launchers can only start a shortcut intent with LauncherApps#startShortcut.

Returns
Intent

getIntents

Added in API level 25
public Intent[] getIntents ()

Return the intent set with Builder#setIntents(Intent[]).

Launcher apps cannot see the intents. If a ShortcutInfo is obtained via LauncherApps, then this method will always return null. Launchers can only start a shortcut intent with LauncherApps#startShortcut.

Returns
Intent[]

getLastChangedTimestamp

Added in API level 25
public long getLastChangedTimestamp ()

Last time when any of the fields was updated.

Returns
long

getLocusId

Added in API level 29
public LocusId getLocusId ()

Gets the LocusId associated with this shortcut.

Used by the device's intelligence services to correlate objects (such as Notification and ContentCaptureContext) that are correlated.

Returns
LocusId This value may be null.

getLongLabel

Added in API level 25
public CharSequence getLongLabel ()

Return the long description of a shortcut.

Returns
CharSequence This value may be null.

getPackage

Added in API level 25
public String getPackage ()

Return the package name of the publisher app.

Returns
String This value cannot be null.

getRank

Added in API level 25
public int getRank ()

"Rank" of a shortcut, which is a non-negative, sequential value that's unique for each getActivity() for each of the two types of shortcuts (static and dynamic).

Floating shortcuts, or shortcuts that are neither static nor dynamic, will all have rank 0, because they aren't sorted. See the ShortcutManager's class javadoc for details.

Returns
int

getShortLabel

Added in API level 25
public CharSequence getShortLabel ()

Return the short description of a shortcut.

Returns
CharSequence This value may be null.

getUserHandle

Added in API level 25
public UserHandle getUserHandle ()

UserHandle on which the publisher created this shortcut.

Returns
UserHandle

hasKeyFieldsOnly

Added in API level 25
public boolean hasKeyFieldsOnly ()

Return whether a shortcut only contains "key" information only or not. If true, only the following fields are available.

For performance reasons, shortcuts passed to LauncherApps.Callback#onShortcutsChanged(String, List, UserHandle) as well as those returned from LauncherApps#getShortcuts(ShortcutQuery, UserHandle) while using the ShortcutQuery#FLAG_GET_KEY_FIELDS_ONLY option contain only key information.

Returns
boolean

isCached

Added in API level 30
public boolean isCached ()

Return whether a shortcut is cached.

Returns
boolean

isDeclaredInManifest

Added in API level 25
public boolean isDeclaredInManifest ()

Return whether a shortcut is static; that is, whether a shortcut is published from AndroidManifest.xml. If true, the shortcut is also isImmutable().

When an app is upgraded and a shortcut is no longer published from AndroidManifest.xml, this will be set to false. If the shortcut is not pinned, then it'll disappear. However, if it's pinned, it will still be visible, isEnabled() will be false and isImmutable() will be true.

Returns
boolean

isDynamic

Added in API level 25
public boolean isDynamic ()

Return whether a shortcut is dynamic.

Returns
boolean

isEnabled

Added in API level 25
public boolean isEnabled ()

Returns false if a shortcut is disabled with ShortcutManager#disableShortcuts.

Returns
boolean

isExcludedFromSurfaces

Added in API level 33
public boolean isExcludedFromSurfaces (int surface)

Return true if the shortcut is excluded from specified surface.

Parameters
surface int: Value is either 0 or SURFACE_LAUNCHER

Returns
boolean

isImmutable

Added in API level 25
public boolean isImmutable ()

Return if a shortcut is immutable, in which case it cannot be modified with any of ShortcutManager APIs.

All static shortcuts are immutable. When a static shortcut is pinned and is then disabled because it doesn't appear in AndroidManifest.xml for a newer version of the app, isDeclaredInManifest() returns false, but the shortcut is still immutable.

All shortcuts originally published via the ShortcutManager APIs are all mutable.

Returns
boolean

isPinned

Added in API level 25
public boolean isPinned ()

Return whether a shortcut is pinned.

Returns
boolean

toString

Added in API level 25
public String toString ()

Return a string representation, intended for logging. Some fields will be retracted.

Returns
String a string representation of the object.

writeToParcel

Added in API level 25
public void writeToParcel (Parcel dest, 
                int flags)

Flatten this object in to a Parcel.

Parameters
dest 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