Save the date! Android Dev Summit is coming to Mountain View, CA on November 7-8, 2018.

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.

Inherited constants

Fields

public static final Creator<ShortcutInfo> CREATOR

Public methods

int describeContents()

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

ComponentName getActivity()

Return the target activity.

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.

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 ShortcutInfo.Builder.setIntents(Intent[]).

long getLastChangedTimestamp()

Last time when any of the fields was updated.

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 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(List).

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"

Fields

CREATOR

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

Public methods

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(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.

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.

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.

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 will never 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(ShortcutInfo, Rect, Bundle).

Returns
Intent

This value may be null.

getIntents

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

Return the intent set with ShortcutInfo.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(ShortcutInfo, Rect, Bundle).

Returns
Intent[]

This value may be null.

getLastChangedTimestamp

added in API level 25
public long getLastChangedTimestamp ()

Last time when any of the fields was updated.

Returns
long

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 will never 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).

Because static shortcuts and dynamic shortcuts have overlapping ranks, when a launcher app shows shortcuts for an activity, it should first show the static shortcuts, followed by the dynamic shortcuts. Within each of those categories, shortcuts should be sorted by rank in ascending order.

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 LauncherApps.ShortcutQuery.FLAG_GET_KEY_FIELDS_ONLY option contain only key information.

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(List).

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.

flags int: Additional flags about how the object should be written. May be 0 or Parcelable.PARCELABLE_WRITE_RETURN_VALUE.