ShortcutInfo.Builder

public static class ShortcutInfo.Builder
extends Object

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


Builder class for ShortcutInfo objects.

See also:

Summary

Public constructors

Builder(Context context, String id)

Constructor.

Public methods

ShortcutInfo.Builder addCapabilityBinding(Capability capability, CapabilityParams capabilityParams)

Associates a shortcut with a capability, and a parameter of that capability.

ShortcutInfo build()

Creates a ShortcutInfo instance.

ShortcutInfo.Builder setActivity(ComponentName activity)

Sets the target activity.

ShortcutInfo.Builder setCategories(Set<String> categories)

Sets categories for a shortcut.

ShortcutInfo.Builder setDisabledMessage(CharSequence disabledMessage)

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

ShortcutInfo.Builder setExcludedFromSurfaces(int surfaces)

Sets which surfaces a shortcut will be excluded from.

ShortcutInfo.Builder setExtras(PersistableBundle extras)

Extras that the app can set for any purpose.

ShortcutInfo.Builder setIcon(Icon icon)

Sets an icon of a shortcut.

ShortcutInfo.Builder setIntent(Intent intent)

Sets the intent of a shortcut.

ShortcutInfo.Builder setIntents(Intent[] intents)

Sets multiple intents instead of a single intent, in order to launch an activity with other activities in back stack.

ShortcutInfo.Builder setLocusId(LocusId locusId)

Sets the LocusId associated with this shortcut.

ShortcutInfo.Builder setLongLabel(CharSequence longLabel)

Sets the text of a shortcut.

ShortcutInfo.Builder setLongLived(boolean longLived)

Sets if a shortcut would be valid even if it has been unpublished/invisible by the app (as a dynamic or pinned shortcut).

ShortcutInfo.Builder setPerson(Person person)

Add a person that is relevant to this shortcut.

ShortcutInfo.Builder setPersons(Person[] persons)

Sets multiple persons instead of a single person.

ShortcutInfo.Builder setRank(int rank)

"Rank" of a shortcut, which is a non-negative value that's used by the launcher app to sort shortcuts.

ShortcutInfo.Builder setShortLabel(CharSequence shortLabel)

Sets the short title of a shortcut.

ShortcutInfo.Builder setStartingTheme(int themeResId)

Sets a theme resource id for the splash screen.

Inherited methods

Public constructors

Builder

Added in API level 25
public Builder (Context context, 
                String id)

Constructor.

Parameters
context Context: Client context.

id String: ID of the shortcut.

Public methods

addCapabilityBinding

Added in API level 33
public ShortcutInfo.Builder addCapabilityBinding (Capability capability, 
                CapabilityParams capabilityParams)

Associates a shortcut with a capability, and a parameter of that capability. Used when the shortcut is an instance of a capability.

This method can be called multiple times to add multiple parameters to the same capability.

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

capabilityParams CapabilityParams: Optional CapabilityParams associated with given capability. This value may be null.

Returns
ShortcutInfo.Builder This value cannot be null.

build

Added in API level 25
public ShortcutInfo build ()

Creates a ShortcutInfo instance.

Returns
ShortcutInfo This value cannot be null.

setActivity

Added in API level 25
public ShortcutInfo.Builder setActivity (ComponentName activity)

Sets the target activity. A shortcut will be shown along with this activity's icon on the launcher. When selecting a target activity, keep the following in mind:

Parameters
activity ComponentName: This value cannot be null.

Returns
ShortcutInfo.Builder This value cannot be null.

setCategories

Added in API level 25
public ShortcutInfo.Builder setCategories (Set<String> categories)

Sets categories for a shortcut.

  • Launcher apps may use this information to categorize shortcuts
  • Used by the system to associate a published Sharing Shortcut with supported mimeTypes. Required for published Sharing Shortcuts with a matching category declared in share targets, defined in the app's manifest linked shortcuts xml file.

Parameters
categories Set

Returns
ShortcutInfo.Builder This value cannot be null.

setDisabledMessage

Added in API level 25
public ShortcutInfo.Builder setDisabledMessage (CharSequence disabledMessage)

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

Parameters
disabledMessage CharSequence: This value cannot be null.

Returns
ShortcutInfo.Builder This value cannot be null.

setExcludedFromSurfaces

Added in API level 33
public ShortcutInfo.Builder setExcludedFromSurfaces (int surfaces)

Sets which surfaces a shortcut will be excluded from. If the shortcut is set to be excluded from ShortcutInfo.SURFACE_LAUNCHER, shortcuts will be excluded from the search result of LauncherApps.getShortcuts(android.content.pm.LauncherApps.ShortcutQuery, UserHandle) nor ShortcutManager.getShortcuts(int). This generally means the shortcut would not be displayed by a launcher app (e.g. in Long-Press menu), while remain visible in other surfaces such as assistant or on-device-intelligence.

Parameters
surfaces int

Returns
ShortcutInfo.Builder This value cannot be null.

setExtras

Added in API level 25
public ShortcutInfo.Builder setExtras (PersistableBundle extras)

Extras that the app can set for any purpose.

Apps can store arbitrary shortcut metadata in extras and retrieve the metadata later using ShortcutInfo#getExtras().

Parameters
extras PersistableBundle: This value cannot be null.

Returns
ShortcutInfo.Builder This value cannot be null.

setIcon

Added in API level 25
public ShortcutInfo.Builder setIcon (Icon icon)

Sets an icon of a shortcut.

Icons are not available on ShortcutInfo instances returned by ShortcutManager or LauncherApps. The default launcher app can use LauncherApps#getShortcutIconDrawable(ShortcutInfo, int) or LauncherApps#getShortcutBadgedIconDrawable(ShortcutInfo, int) to fetch shortcut icons.

Tints set with Icon#setTint or Icon#setTintList are not supported and will be ignored.

Only icons created with Icon#createWithBitmap(Bitmap), Icon#createWithAdaptiveBitmap(Bitmap) and Icon#createWithResource are supported. Other types, such as URI-based icons, are not supported.

Parameters
icon Icon

Returns
ShortcutInfo.Builder This value cannot be null.

setIntent

Added in API level 25
public ShortcutInfo.Builder setIntent (Intent intent)

Sets the intent of a shortcut. Alternatively, setIntents(android.content.Intent[]) can be used to launch an activity with other activities in the back stack.

This is a mandatory field when publishing a new shortcut with ShortcutManager#addDynamicShortcuts(List) or ShortcutManager#setDynamicShortcuts(List).

A shortcut can launch any intent that the publisher app has permission to launch. For example, a shortcut can launch an unexported activity within the publisher app. A shortcut intent doesn't have to point at the target activity.

The given intent can contain extras, but these extras must contain values of primitive types in order for the system to persist these values.

Parameters
intent Intent: This value cannot be null.

Returns
ShortcutInfo.Builder This value cannot be null.

setIntents

Added in API level 25
public ShortcutInfo.Builder setIntents (Intent[] intents)

Sets multiple intents instead of a single intent, in order to launch an activity with other activities in back stack. Use TaskStackBuilder to build intents. The last element in the list represents the only intent that doesn't place an activity on the back stack. See the ShortcutManager javadoc for details.

Parameters
intents Intent: This value cannot be null.

Returns
ShortcutInfo.Builder This value cannot be null.

setLocusId

Added in API level 29
public ShortcutInfo.Builder setLocusId (LocusId locusId)

Sets the LocusId associated with this shortcut.

This method should be called when the LocusId is used in other places (such as Notification and ContentCaptureContext) so the device's intelligence services can correlate them.

Parameters
locusId LocusId: This value cannot be null.

Returns
ShortcutInfo.Builder This value cannot be null.

setLongLabel

Added in API level 25
public ShortcutInfo.Builder setLongLabel (CharSequence longLabel)

Sets the text of a shortcut.

This field is intended to be more descriptive than the shortcut title. The launcher shows this instead of the short title when it has enough space.

The recommend maximum length is 25 characters.

Parameters
longLabel CharSequence: This value cannot be null.

Returns
ShortcutInfo.Builder This value cannot be null.

setLongLived

Added in API level 29
public ShortcutInfo.Builder setLongLived (boolean longLived)

Sets if a shortcut would be valid even if it has been unpublished/invisible by the app (as a dynamic or pinned shortcut). If it is long lived, it can be cached by various system services even after it has been unpublished as a dynamic shortcut.

Parameters
longLived boolean

Returns
ShortcutInfo.Builder This value cannot be null.

setPerson

Added in API level 29
public ShortcutInfo.Builder setPerson (Person person)

Add a person that is relevant to this shortcut. Alternatively, setPersons(android.app.Person[]) can be used to add multiple persons to a shortcut.

This is an optional field, but the addition of person may cause this shortcut to appear more prominently in the user interface (e.g. ShareSheet).

A person should usually contain a uri in order to benefit from the ranking boost. However, even if no uri is provided, it's beneficial to provide people in the shortcut, such that listeners and voice only devices can announce and handle them properly.

Parameters
person Person: This value cannot be null.

Returns
ShortcutInfo.Builder This value cannot be null.

setPersons

Added in API level 29
public ShortcutInfo.Builder setPersons (Person[] persons)

Sets multiple persons instead of a single person.

Parameters
persons Person: This value cannot be null.

Returns
ShortcutInfo.Builder This value cannot be null.

setRank

Added in API level 25
public ShortcutInfo.Builder setRank (int rank)

"Rank" of a shortcut, which is a non-negative value that's used by the launcher app to sort shortcuts. See ShortcutInfo#getRank() for details.

Parameters
rank int

Returns
ShortcutInfo.Builder This value cannot be null.

setShortLabel

Added in API level 25
public ShortcutInfo.Builder setShortLabel (CharSequence shortLabel)

Sets the short title of a shortcut.

This is a mandatory field when publishing a new shortcut with ShortcutManager#addDynamicShortcuts(List) or ShortcutManager#setDynamicShortcuts(List).

This field is intended to be a concise description of a shortcut.

The recommended maximum length is 10 characters.

Parameters
shortLabel CharSequence: This value cannot be null.

Returns
ShortcutInfo.Builder This value cannot be null.

setStartingTheme

Added in API level 31
public ShortcutInfo.Builder setStartingTheme (int themeResId)

Sets a theme resource id for the splash screen.

Parameters
themeResId int

Returns
ShortcutInfo.Builder This value cannot be null.