ShortcutManagerCompat
class ShortcutManagerCompat
Helper for accessing features in android.content.pm.ShortcutManager.
Summary
Constants |
|
|---|---|
const String! |
EXTRA_SHORTCUT_ID = "android.intent.extra.shortcut.ID"Key to get the shortcut ID from extras of a share intent. |
const Int |
Include cached shortcuts in the result. |
const Int |
Include dynamic shortcuts in the result. |
const Int |
Include manifest shortcuts in the result. |
const Int |
Include pinned shortcuts in the result. |
Public functions |
|
|---|---|
java-static Boolean |
addDynamicShortcuts(Publish the list of dynamic shortcuts. |
java-static Intent |
createShortcutResultIntent(Returns an Intent which can be used by the launcher to pin shortcut. |
java-static Unit |
disableShortcuts(Disable pinned shortcuts, showing the user a custom error message when they try to select the disabled shortcuts. |
java-static Unit |
enableShortcuts(Re-enable pinned shortcuts that were previously disabled. |
java-static (Mutable)List<ShortcutInfoCompat!> |
getDynamicShortcuts(context: Context)Return all dynamic shortcuts from the caller app. |
java-static Int |
getIconMaxHeight(context: Context)Return the max height for icons, in pixels. |
java-static Int |
getIconMaxWidth(context: Context)Return the max width for icons, in pixels. |
java-static Int |
getMaxShortcutCountPerActivity(context: Context) |
java-static (Mutable)List<ShortcutInfoCompat!> |
getShortcuts(context: Context, matchFlags: Int)Returns |
java-static Boolean |
isRateLimitingActive(context: Context)Return |
java-static Boolean |
isRequestPinShortcutSupported(context: Context) |
java-static Boolean |
pushDynamicShortcut(context: Context, shortcut: ShortcutInfoCompat)Publish a single dynamic shortcut. |
java-static Unit |
removeAllDynamicShortcuts(context: Context)Delete all dynamic shortcuts from the caller app. |
java-static Unit |
removeDynamicShortcuts(Delete dynamic shortcuts by ID. |
java-static Unit |
removeLongLivedShortcuts(Delete long lived shortcuts by ID. |
java-static Unit |
reportShortcutUsed(context: Context, shortcutId: String)Apps that publish shortcuts should call this method whenever the user selects the shortcut containing the given ID or when the user completes an action in the app that is equivalent to selecting the shortcut. |
java-static Boolean |
requestPinShortcut(Request to create a pinned shortcut. |
java-static Boolean |
setDynamicShortcuts(Publish the list of shortcuts. |
java-static Boolean |
updateShortcuts(Update all existing shortcuts with the same IDs. |
Constants
EXTRA_SHORTCUT_ID
const val EXTRA_SHORTCUT_ID = "android.intent.extra.shortcut.ID": String!
Key to get the shortcut ID from extras of a share intent. When user selects a direct share item from ShareSheet, the app will receive a share intent which includes the ID of the corresponding shortcut in the extras field.
FLAG_MATCH_CACHED
const val FLAG_MATCH_CACHED = 8: Int
Include cached shortcuts in the result.
| See also | |
|---|---|
getShortcuts |
FLAG_MATCH_DYNAMIC
const val FLAG_MATCH_DYNAMIC = 2: Int
Include dynamic shortcuts in the result.
| See also | |
|---|---|
getShortcuts |
FLAG_MATCH_MANIFEST
const val FLAG_MATCH_MANIFEST = 1: Int
Include manifest shortcuts in the result.
| See also | |
|---|---|
getShortcuts |
FLAG_MATCH_PINNED
const val FLAG_MATCH_PINNED = 4: Int
Include pinned shortcuts in the result.
| See also | |
|---|---|
getShortcuts |
Public functions
addDynamicShortcuts
java-static fun addDynamicShortcuts(
context: Context,
shortcutInfoList: (Mutable)List<ShortcutInfoCompat!>
): Boolean
Publish the list of dynamic shortcuts. If there are already dynamic or pinned shortcuts with the same IDs, each mutable shortcut is updated.
On API <= 31 Any shortcuts that are marked as excluded from launcher will not be passed to the ShortcutManager, but they might still be available to assistant and other surfaces through alternative means.
This API will be rate-limited.
| Returns | |
|---|---|
Boolean |
|
| Throws | |
|---|---|
java.lang.IllegalArgumentException |
if |
createShortcutResultIntent
java-static fun createShortcutResultIntent(
context: Context,
shortcut: ShortcutInfoCompat
): Intent
Returns an Intent which can be used by the launcher to pin shortcut.
This should be used by an Activity to set result in response to ACTION_CREATE_SHORTCUT.
| Parameters | |
|---|---|
context: Context |
context to use for the intent. |
shortcut: ShortcutInfoCompat |
new shortcut to pin |
| Returns | |
|---|---|
Intent |
the intent that should be set as the result for the calling activity |
| See also | |
|---|---|
ACTION_CREATE_SHORTCUT |
disableShortcuts
java-static fun disableShortcuts(
context: Context,
shortcutIds: (Mutable)List<String!>,
disabledMessage: CharSequence?
): Unit
Disable pinned shortcuts, showing the user a custom error message when they try to select the disabled shortcuts. For more details, read Disable shortcuts. Compatibility behavior:
- API 25 and above, this method matches platform behavior.
- API 24 and earlier, this method behaves the same as
removeDynamicShortcuts
| Throws | |
|---|---|
java.lang.IllegalArgumentException |
If trying to disable immutable shortcuts. |
java.lang.IllegalStateException |
when the user is locked. |
enableShortcuts
java-static fun enableShortcuts(
context: Context,
shortcutInfoList: (Mutable)List<ShortcutInfoCompat!>
): Unit
Re-enable pinned shortcuts that were previously disabled. If the target shortcuts are already enabled, this method does nothing.
In API 31 and below any shortcuts that are marked as excluded from launcher will be ignored. Compatibility behavior:
- API 25 and above, this method matches platform behavior.
- API 24 and earlier, this method behaves the same as
addDynamicShortcuts
| Throws | |
|---|---|
java.lang.IllegalArgumentException |
If trying to enable immutable shortcuts. |
java.lang.IllegalStateException |
when the user is locked. |
getDynamicShortcuts
java-static fun getDynamicShortcuts(context: Context): (Mutable)List<ShortcutInfoCompat!>
Return all dynamic shortcuts from the caller app.
This API is intended to be used for examining what shortcuts are currently published. Re-publishing returned ShortcutInfos via APIs such as addDynamicShortcuts may cause loss of information such as icons.
getIconMaxHeight
java-static fun getIconMaxHeight(context: Context): Int
Return the max height for icons, in pixels.
getIconMaxWidth
java-static fun getIconMaxWidth(context: Context): Int
Return the max width for icons, in pixels.
Note that this method returns max width of icon's visible part. Hence, it does not take into account the inset introduced by android.graphics.drawable.AdaptiveIconDrawable. To calculate bitmap image to function as android.graphics.drawable.AdaptiveIconDrawable, multiply 1 + 2 * getExtraInsetFraction to the returned size.
getMaxShortcutCountPerActivity
java-static fun getMaxShortcutCountPerActivity(context: Context): Int
| Returns | |
|---|---|
Int |
The maximum number of static and dynamic shortcuts that each launcher icon can have at a time. |
getShortcuts
java-static fun getShortcuts(context: Context, matchFlags: Int): (Mutable)List<ShortcutInfoCompat!>
Returns ShortcutInfoCompats that match matchFlags.
| Parameters | |
|---|---|
context: Context |
context to use for the shortcuts. |
matchFlags: Int |
result includes shortcuts matching this flags. Any combination of: Compatibility behavior:
|
| Returns | |
|---|---|
(Mutable)List<ShortcutInfoCompat!> |
list of At least one of the |
| Throws | |
|---|---|
java.lang.IllegalStateException |
when the user is locked. |
isRateLimitingActive
java-static fun isRateLimitingActive(context: Context): Boolean
Return true when rate-limiting is active for the caller app.
For details, see Rate limiting.
| Throws | |
|---|---|
java.lang.IllegalStateException |
when the user is locked. |
isRequestPinShortcutSupported
java-static fun isRequestPinShortcutSupported(context: Context): Boolean
| Returns | |
|---|---|
Boolean |
|
pushDynamicShortcut
java-static fun pushDynamicShortcut(context: Context, shortcut: ShortcutInfoCompat): Boolean
Publish a single dynamic shortcut. If there are already dynamic or pinned shortcuts with the same ID, each mutable shortcut is updated.
This method is useful when posting notifications which are tagged with shortcut IDs; In order to make sure shortcuts exist and are up-to-date, without the need to explicitly handle the shortcut count limit.
| Returns | |
|---|---|
Boolean |
|
| Throws | |
|---|---|
java.lang.IllegalArgumentException |
if trying to update an immutable shortcut. |
java.lang.IllegalStateException |
when the user is locked. |
| See also | |
|---|---|
notify |
|
setShortcutId |
If If the rank of the shortcut is not explicitly set, it will be set to zero, and shortcut will be added to the top of the list. Compatibility behavior:
|
removeAllDynamicShortcuts
java-static fun removeAllDynamicShortcuts(context: Context): Unit
Delete all dynamic shortcuts from the caller app. Note that if a shortcut is set as long-lived, it may still be available in the system as a cached shortcut even after being removed from the list of dynamic shortcuts.
| See also | |
|---|---|
removeLongLivedShortcuts |
removeDynamicShortcuts
java-static fun removeDynamicShortcuts(
context: Context,
shortcutIds: (Mutable)List<String!>
): Unit
Delete dynamic shortcuts by ID. Note that if a shortcut is set as long-lived, it may still be available in the system as a cached shortcut even after being removed from the list of dynamic shortcuts.
| See also | |
|---|---|
removeLongLivedShortcuts |
removeLongLivedShortcuts
java-static fun removeLongLivedShortcuts(
context: Context,
shortcutIds: (Mutable)List<String!>
): Unit
Delete long lived shortcuts by ID. Compatibility behavior:
- API 30 and above, this method matches platform behavior.
- API 29 and earlier, this method behaves the same as
removeDynamicShortcuts
| Throws | |
|---|---|
java.lang.IllegalStateException |
when the user is locked. |
reportShortcutUsed
java-static fun reportShortcutUsed(context: Context, shortcutId: String): Unit
Apps that publish shortcuts should call this method whenever the user selects the shortcut containing the given ID or when the user completes an action in the app that is equivalent to selecting the shortcut. For more details, read about tracking shortcut usage.
The information is accessible via queryEvents Typically, launcher apps use this information to build a prediction model so that they can promote the shortcuts that are likely to be used at the moment.
| Throws | |
|---|---|
java.lang.IllegalStateException |
when the user is locked. This method is not supported on devices running SDK <25 since the platform class will not be available. |
requestPinShortcut
java-static fun requestPinShortcut(
context: Context,
shortcut: ShortcutInfoCompat,
callback: IntentSender?
): Boolean
Request to create a pinned shortcut.
On API <= 25 it creates a legacy shortcut with the provided icon, label and intent. For newer APIs it will create a android.content.pm.ShortcutInfo object which can be updated by the app.
Use getIntentSender to create a IntentSender.
| Parameters | |
|---|---|
context: Context |
context to use for the request. |
shortcut: ShortcutInfoCompat |
new shortcut to pin |
callback: IntentSender? |
if not null, this intent will be sent when the shortcut is pinned |
| Returns | |
|---|---|
Boolean |
|
setDynamicShortcuts
java-static fun setDynamicShortcuts(
context: Context,
shortcutInfoList: (Mutable)List<ShortcutInfoCompat!>
): Boolean
Publish the list of shortcuts. All existing dynamic shortcuts from the caller app will be replaced. If there are already pinned shortcuts with the same IDs, the mutable pinned shortcuts are updated.
On API <= 31 Any shortcuts that are marked as excluded from launcher will not be passed to the ShortcutManager, but they might still be available to assistant and other surfaces through alternative means.
This API will be rate-limited. Compatibility behavior:
- API 25 and above, this method matches platform behavior.
- API 24 and earlier, this method is equivalent of calling
removeAllDynamicShortcutsandaddDynamicShortcutsconsecutively.
| Returns | |
|---|---|
Boolean |
|
| Throws | |
|---|---|
java.lang.IllegalArgumentException |
if |
java.lang.IllegalStateException |
when the user is locked. |
updateShortcuts
java-static fun updateShortcuts(
context: Context,
shortcutInfoList: (Mutable)List<ShortcutInfoCompat!>
): Boolean
Update all existing shortcuts with the same IDs. Target shortcuts may be pinned and/or dynamic, but they must not be immutable.
On API <= 31 Any shortcuts that are marked as excluded from launcher will not be passed to the ShortcutManager, but they might still be available to assistant and other surfaces through alternative means.
This API will be rate-limited.
| Returns | |
|---|---|
Boolean |
|
| Throws | |
|---|---|
java.lang.IllegalArgumentException |
If trying to update immutable shortcuts. |