LauncherApps  |  API reference  |  Android Developers (original) (raw)


public class LauncherApps
extends [Object](/reference/java/lang/Object) ``


Class for retrieving a list of launchable activities for the current user and any associated managed profiles that are visible to the current user, which can be retrieved with[getProfiles()](/reference/android/content/pm/LauncherApps#getProfiles%28%29). This is mainly for use by launchers. Apps can be queried for each user profile. Since the PackageManager will not deliver package broadcasts for other profiles, you can register for package changes here.

To watch for managed profiles being added or removed, register for the following broadcasts:[Intent.ACTION_MANAGED_PROFILE_ADDED](/reference/android/content/Intent#ACTION%5FMANAGED%5FPROFILE%5FADDED) and [Intent.ACTION_MANAGED_PROFILE_REMOVED](/reference/android/content/Intent#ACTION%5FMANAGED%5FPROFILE%5FREMOVED).

Note as of Android O, apps on a managed profile are no longer allowed to access apps on the main profile. Apps can only access profiles returned by [getProfiles()](/reference/android/content/pm/LauncherApps#getProfiles%28%29).

Summary

Nested classes
class LauncherApps.ArchiveCompatibilityParams Used to enable Archiving compatibility options with LauncherApps.setArchiveCompatibility(ArchiveCompatibilityParams).
class LauncherApps.Callback Callbacks for package changes to this and related managed profiles.
class LauncherApps.PinItemRequest Represents a "pin shortcut" or a "pin appwidget" request made by an app, which is sent with an LauncherApps.ACTION_CONFIRM_PIN_SHORTCUT or LauncherApps.ACTION_CONFIRM_PIN_APPWIDGET intent respectively to the default launcher app.
class LauncherApps.ShortcutQuery Represents a query passed to getShortcuts(ShortcutQuery,UserHandle).
Constants
String ACTION_CONFIRM_PIN_APPWIDGET Activity Action: For the default launcher to show the confirmation dialog to create a pinned app widget.
String ACTION_CONFIRM_PIN_SHORTCUT Activity Action: For the default launcher to show the confirmation dialog to create a pinned shortcut.
String EXTRA_PIN_ITEM_REQUEST An extra for ACTION_CONFIRM_PIN_SHORTCUT & ACTION_CONFIRM_PIN_APPWIDGET containing a PinItemRequest of appropriate type asked to pin.
Public methods
List<LauncherActivityInfo> getActivityList(String packageName, UserHandle user) Retrieves a list of activities that specify Intent.ACTION_MAIN andIntent.CATEGORY_LAUNCHER, across all apps, for a specified user.
List<PackageInstaller.SessionInfo> getAllPackageInstallerSessions() Return list of all known install sessions in this user and managed profiles, regardless of the installer.
IntentSender getAppMarketActivityIntent(String packageName, UserHandle user) Returns an intent sender which can be used to start the App Market activity (Installer Activity).
ApplicationInfo getApplicationInfo(String packageName, int flags, UserHandle user) Returns ApplicationInfo about an application installed for a specific user profile.
finalLauncherUserInfo getLauncherUserInfo(UserHandle userHandle) Returns information related to a user which is useful for displaying UI elements to distinguish it from other users (eg, badges).
LauncherApps.PinItemRequest getPinItemRequest(Intent intent) A helper method to extract a PinItemRequest set to the EXTRA_PIN_ITEM_REQUEST extra.
List<String> getPreInstalledSystemPackages(UserHandle userHandle) Returns the list of the system packages that are installed at user creation.
IntentSender getPrivateSpaceSettingsIntent() Returns IntentSender which can be used to start the Private Space Settings Activity.
List<UserHandle> getProfiles() Return a list of profiles that the caller can access via the LauncherApps APIs.
Drawable getShortcutBadgedIconDrawable(ShortcutInfo shortcut, int density) Returns the shortcut icon with badging appropriate for the profile.
IntentSender getShortcutConfigActivityIntent(LauncherActivityInfo info) Returns an intent sender which can be used to start the configure activity for creating custom shortcuts.
List<LauncherActivityInfo> getShortcutConfigActivityList(String packageName, UserHandle user) Retrieves a list of config activities for creating ShortcutInfo.
Drawable getShortcutIconDrawable(ShortcutInfo shortcut, int density) Returns the icon for this shortcut, without any badging for the profile.
PendingIntent getShortcutIntent(String packageName, String shortcutId, Bundle opts, UserHandle user) Returns PendingIntent associated with specified shortcut.
List<ShortcutInfo> getShortcuts(LauncherApps.ShortcutQuery query, UserHandle user) Returns ShortcutInfos that match query.
Bundle getSuspendedPackageLauncherExtras(String packageName, UserHandle user) Gets the launcher extras supplied to the system when the given package was suspended viaPackageManager#setPackagesSuspended(String[], boolean, PersistableBundle, PersistableBundle, String).
boolean hasShortcutHostPermission() Returns whether the caller can access the shortcut information.
boolean isActivityEnabled(ComponentName component, UserHandle user) Checks if the activity exists and it enabled for a profile.
boolean isPackageEnabled(String packageName, UserHandle user) Checks if the package is installed and enabled for a profile.
void pinShortcuts(String packageName, List<String> shortcutIds, UserHandle user) Pin shortcuts on a package.
void registerCallback(LauncherApps.Callback callback) Registers a callback for changes to packages in this user and managed profiles.
void registerCallback(LauncherApps.Callback callback, Handler handler) Registers a callback for changes to packages in this user and managed profiles.
void registerPackageInstallerSessionCallback(Executor executor, PackageInstaller.SessionCallback callback) Register a callback to watch for session lifecycle events in this user and managed profiles.
LauncherActivityInfo resolveActivity(Intent intent, UserHandle user) Returns the activity info for a given intent and user handle, if it resolves.
void setArchiveCompatibility(LauncherApps.ArchiveCompatibilityParams params) Disable different archive compatibility options of the launcher for the caller of this method.
boolean shouldHideFromSuggestions(String packageName, UserHandle user) Returns whether a package should be hidden from suggestions to the user.
void startAppDetailsActivity(ComponentName component, UserHandle user, Rect sourceBounds, Bundle opts) Starts the settings activity to show the application details for a package in the specified profile.
void startMainActivity(ComponentName component, UserHandle user, Rect sourceBounds, Bundle opts) Starts a Main activity in the specified profile.
void startPackageInstallerSessionDetailsActivity(PackageInstaller.SessionInfo sessionInfo, Rect sourceBounds, Bundle opts) Starts an activity to show the details of the specified session.
void startShortcut(String packageName, String shortcutId, Rect sourceBounds, Bundle startActivityOptions, UserHandle user) Starts a shortcut.
void startShortcut(ShortcutInfo shortcut, Rect sourceBounds, Bundle startActivityOptions) Launches a shortcut.
void unregisterCallback(LauncherApps.Callback callback) Unregisters a callback that was previously registered.
void unregisterPackageInstallerSessionCallback(PackageInstaller.SessionCallback callback) Unregisters a callback that was previously registered.
Inherited methods
From class java.lang.Object Object clone() Creates and returns a copy of this object. boolean equals(Object obj) Indicates whether some other object is "equal to" this one. void finalize() Called by the garbage collector on an object when garbage collection determines that there are no more references to the object. finalClass<?> getClass() Returns the runtime class of this Object. int hashCode() Returns a hash code value for the object. final void notify() Wakes up a single thread that is waiting on this object's monitor. final void notifyAll() Wakes up all threads that are waiting on this object's monitor. String toString() Returns a string representation of the object. final void wait(long timeoutMillis, int nanos) Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed. final void wait(long timeoutMillis) Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed. final void wait() Causes the current thread to wait until it is awakened, typically by being notified or interrupted.

Constants

ACTION_CONFIRM_PIN_SHORTCUT

public static final String ACTION_CONFIRM_PIN_SHORTCUT

Activity Action: For the default launcher to show the confirmation dialog to create a pinned shortcut.

See the [ShortcutManager](/reference/android/content/pm/ShortcutManager) javadoc for details.

Use [getPinItemRequest(Intent)](/reference/android/content/pm/LauncherApps#getPinItemRequest%28android.content.Intent%29) to get a [PinItemRequest](/reference/android/content/pm/LauncherApps.PinItemRequest) object, and call [PinItemRequest.accept(Bundle)](/reference/android/content/pm/LauncherApps.PinItemRequest#accept%28android.os.Bundle%29) if the user accepts. If the user doesn't accept, no further action is required.

Constant Value: "android.content.pm.action.CONFIRM_PIN_SHORTCUT"

Public methods

getActivityList

public List<LauncherActivityInfo> getActivityList (String packageName, UserHandle user)

Retrieves a list of activities that specify [Intent.ACTION_MAIN](/reference/android/content/Intent#ACTION%5FMAIN) and[Intent.CATEGORY_LAUNCHER](/reference/android/content/Intent#CATEGORY%5FLAUNCHER), across all apps, for a specified user. If an app doesn't have any activities that specify ACTION_MAIN or CATEGORY_LAUNCHER, the system adds a synthesized activity to the list. This synthesized activity represents the app's details page within system settings.

Note: It's possible for system apps, such as app stores, to prevent the system from adding synthesized activities to the returned list.

As of Android Q, at least one of the app's activities or synthesized activities appears in the returned list unless the app satisfies at least one of the following conditions:

Additionally, the system hides synthesized activities for some or all apps in the following enterprise-related cases:

If the user in question is a hidden profile [UserManager.USER_TYPE_PROFILE_PRIVATE](/reference/android/os/UserManager#USER%5FTYPE%5FPROFILE%5FPRIVATE), caller should have normal [Manifest.permission.ACCESS_HIDDEN_PROFILES](/reference/android/Manifest.permission#ACCESS%5FHIDDEN%5FPROFILES) permission and the [RoleManager.ROLE_HOME](/reference/android/app/role/RoleManager#ROLE%5FHOME) role.

Parameters
packageName String: The specific package to query. If null, it checks all installed packages in the profile.
user UserHandle: The UserHandle of the profile.
Returns
List<LauncherActivityInfo> List of launchable activities. Can be an empty list but will not be null.

getAppMarketActivityIntent

public IntentSender getAppMarketActivityIntent (String packageName, UserHandle user)

Returns an intent sender which can be used to start the App Market activity (Installer Activity). This method is primarily used to get an intent sender which starts App Market activity for another profile, if the caller is not otherwise allowed to start activity in that profile.

When packageName is set, intent sender to start the App Market Activity which installed the package in calling user will be returned, but for the profile passed.

When packageName is not set, intent sender to launch the default App Market Activity for the profile will be returned. In case there are multiple App Market Activities available for the profile, IntentPicker will be started, allowing user to choose the preferred activity.

The method will fall back to the behaviour of not having the packageName set, in case:

If the user in question is a hidden profile [UserManager.USER_TYPE_PROFILE_PRIVATE](/reference/android/os/UserManager#USER%5FTYPE%5FPROFILE%5FPRIVATE), caller should have normal [Manifest.permission.ACCESS_HIDDEN_PROFILES](/reference/android/Manifest.permission#ACCESS%5FHIDDEN%5FPROFILES) permission and the [RoleManager.ROLE_HOME](/reference/android/app/role/RoleManager#ROLE%5FHOME) role.

Parameters
packageName String: the package for which intent sender to launch App Market Activity is required. This value may be null.
user UserHandle: the profile for which intent sender to launch App Market Activity is required. This value cannot be null.
Returns
IntentSender IntentSender object which launches the App Market Activity, null in case there is no such activity.

getPreInstalledSystemPackages

public List<String> getPreInstalledSystemPackages (UserHandle userHandle)

Returns the list of the system packages that are installed at user creation.

An empty list denotes that all system packages should be treated as pre-installed for that user at creation.

If the user in question is a hidden profile [UserManager.USER_TYPE_PROFILE_PRIVATE](/reference/android/os/UserManager#USER%5FTYPE%5FPROFILE%5FPRIVATE), caller should have normal [Manifest.permission.ACCESS_HIDDEN_PROFILES](/reference/android/Manifest.permission#ACCESS%5FHIDDEN%5FPROFILES) permission and the [RoleManager.ROLE_HOME](/reference/android/app/role/RoleManager#ROLE%5FHOME) role.

Parameters
userHandle UserHandle: the user for which installed system packages are required. This value cannot be null.
Returns
List<String> List of String, representing the package name of the installed package. Can be empty but not null.

getPrivateSpaceSettingsIntent

public IntentSender getPrivateSpaceSettingsIntent ()

Returns [IntentSender](/reference/android/content/IntentSender) which can be used to start the Private Space Settings Activity.

Caller should have [RoleManager.ROLE_HOME](/reference/android/app/role/RoleManager#ROLE%5FHOME) and either of the permissions required.

Returns
IntentSender IntentSender object which launches the Private Space Settings Activity, if successful, null otherwise.

getShortcutBadgedIconDrawable

public Drawable getShortcutBadgedIconDrawable (ShortcutInfo shortcut, int density)

Returns the shortcut icon with badging appropriate for the profile.

The calling launcher application must be allowed to access the shortcut information, as defined in [hasShortcutHostPermission()](/reference/android/content/pm/LauncherApps#hasShortcutHostPermission%28%29).

Parameters
shortcut ShortcutInfo
density int: Optional density for the icon, or 0 to use the default density. Use
Returns
Drawable A badged icon for the shortcut.
Throws
IllegalStateException when the user is locked, or when the user user is locked or not running.

getShortcutConfigActivityList

public List<LauncherActivityInfo> getShortcutConfigActivityList (String packageName, UserHandle user)

Retrieves a list of config activities for creating [ShortcutInfo](/reference/android/content/pm/ShortcutInfo).

Parameters
packageName String: The specific package to query. If null, it checks all installed packages in the profile.
user UserHandle: The UserHandle of the profile. This value cannot be null.
Returns
List<LauncherActivityInfo> List of config activities. Can be an empty list but will not be null. Empty list will be returned for user-profiles that have items restricted on home screen.

getShortcutIconDrawable

public Drawable getShortcutIconDrawable (ShortcutInfo shortcut, int density)

Returns the icon for this shortcut, without any badging for the profile.

The calling launcher application must be allowed to access the shortcut information, as defined in [hasShortcutHostPermission()](/reference/android/content/pm/LauncherApps#hasShortcutHostPermission%28%29).

Parameters
shortcut ShortcutInfo: This value cannot be null.
density int: The preferred density of the icon, zero for default density. Use density DPI values from DisplayMetrics.
Returns
Drawable The drawable associated with the shortcut.
Throws
IllegalStateException when the user is locked, or when the user user is locked or not running.

getShortcutIntent

public PendingIntent getShortcutIntent (String packageName, String shortcutId, Bundle opts, UserHandle user)

Returns PendingIntent associated with specified shortcut.

Parameters
packageName String: The packageName of the shortcut. This value cannot be null.
shortcutId String: The id of the shortcut. This value cannot be null.
opts Bundle: This parameter is no longer supported. This value may be null.
user UserHandle: The UserHandle of the profile. This value cannot be null.
Returns
PendingIntent This value may be null.

hasShortcutHostPermission

public boolean hasShortcutHostPermission ()

Returns whether the caller can access the shortcut information. Access is currently available to:

Note when this method returns false, it may be a temporary situation because the user is trying a new launcher application. The user may decide to change the default launcher back to the calling application again, so even if a launcher application loses this permission, it does not have to purge pinned shortcut information. If the calling launcher application contains pinned shortcuts, they will still work, even though the caller no longer has the shortcut host permission.

Returns
boolean
Throws
IllegalStateException when the user is locked.

pinShortcuts

public void pinShortcuts (String packageName, List<String> shortcutIds, UserHandle user)

Pin shortcuts on a package.

This API is NOT cumulative; this will replace all pinned shortcuts for the package. However, different launchers may have different set of pinned shortcuts.

The calling launcher application must be allowed to access the shortcut information, as defined in [hasShortcutHostPermission()](/reference/android/content/pm/LauncherApps#hasShortcutHostPermission%28%29).

For user-profiles with items restricted on home screen, caller must have the required permission.

Parameters
packageName String: The target package name. This value cannot be null.
shortcutIds List: The IDs of the shortcut to be pinned. This value cannot be null.
user UserHandle: The UserHandle of the profile. This value cannot be null.
Throws
IllegalStateException when the user is locked, or when the user user is locked or not running.

registerPackageInstallerSessionCallback

public void registerPackageInstallerSessionCallback (Executor executor, PackageInstaller.SessionCallback callback)

Register a callback to watch for session lifecycle events in this user and managed profiles. Callers need to either declare element with the specific package name in the app's manifest, have the android.permission.QUERY_ALL_PACKAGES, or be the session owner to watch for these events.

Session callbacks are not sent for user-profiles that have items restricted on home screen.

Parameters
executor Executor: Executor to handle the callbacks, cannot be null. Callback and listener events are dispatched through thisExecutor, providing an easy way to control which thread is used. To dispatch events through the main thread of your application, you can useContext.getMainExecutor(). Otherwise, provide an Executor that dispatches to an appropriate thread.
callback PackageInstaller.SessionCallback: The callback to register. This value cannot be null.

setArchiveCompatibility

public void setArchiveCompatibility (LauncherApps.ArchiveCompatibilityParams params)

Disable different archive compatibility options of the launcher for the caller of this method.

Parameters
params LauncherApps.ArchiveCompatibilityParams: This value cannot be null.

shouldHideFromSuggestions

public boolean shouldHideFromSuggestions (String packageName, UserHandle user)

Returns whether a package should be hidden from suggestions to the user. Currently, this could be done because the package was marked as distracting to the user viaPackageManager.setDistractingPackageRestrictions(String[], int).

If the user in question is a hidden profile [UserManager.USER_TYPE_PROFILE_PRIVATE](/reference/android/os/UserManager#USER%5FTYPE%5FPROFILE%5FPRIVATE), caller should have normal [Manifest.permission.ACCESS_HIDDEN_PROFILES](/reference/android/Manifest.permission#ACCESS%5FHIDDEN%5FPROFILES) permission and the [RoleManager.ROLE_HOME](/reference/android/app/role/RoleManager#ROLE%5FHOME) role.

Parameters
packageName String: The package for which to check. This value cannot be null.
user UserHandle: the UserHandle of the profile. This value cannot be null.
Returns
boolean

startAppDetailsActivity

public void startAppDetailsActivity (ComponentName component, UserHandle user, Rect sourceBounds, Bundle opts)

Starts the settings activity to show the application details for a package in the specified profile.

If the user in question is a hidden profile [UserManager.USER_TYPE_PROFILE_PRIVATE](/reference/android/os/UserManager#USER%5FTYPE%5FPROFILE%5FPRIVATE), caller should have normal [Manifest.permission.ACCESS_HIDDEN_PROFILES](/reference/android/Manifest.permission#ACCESS%5FHIDDEN%5FPROFILES) permission and the [RoleManager.ROLE_HOME](/reference/android/app/role/RoleManager#ROLE%5FHOME) role.

Parameters
component ComponentName: The ComponentName of the package to launch settings for.
user UserHandle: The UserHandle of the profile
sourceBounds Rect: The Rect containing the source bounds of the clicked icon
opts Bundle: Options to pass to startActivity

startPackageInstallerSessionDetailsActivity

public void startPackageInstallerSessionDetailsActivity (PackageInstaller.SessionInfo sessionInfo, Rect sourceBounds, Bundle opts)

Starts an activity to show the details of the specified session.

Parameters
sessionInfo PackageInstaller.SessionInfo: The SessionInfo of the session. This value cannot be null.
sourceBounds Rect: The Rect containing the source bounds of the clicked icon. This value may be null.
opts Bundle: Options to pass to startActivity. This value may be null.

startShortcut

public void startShortcut (String packageName, String shortcutId, Rect sourceBounds, Bundle startActivityOptions, UserHandle user)

Starts a shortcut.

The calling launcher application must be allowed to access the shortcut information, as defined in [hasShortcutHostPermission()](/reference/android/content/pm/LauncherApps#hasShortcutHostPermission%28%29).

Parameters
packageName String: The target shortcut package name. This value cannot be null.
shortcutId String: The target shortcut ID. This value cannot be null.
sourceBounds Rect: The Rect containing the source bounds of the clicked icon. This value may be null.
startActivityOptions Bundle: Options to pass to startActivity. This value may be null.
user UserHandle: The UserHandle of the profile. This value cannot be null.
Throws
ActivityNotFoundException failed to start shortcut. (e.g. the shortcut no longer exists, is disabled, the intent receiver activity doesn't exist, etc)
IllegalStateException when the user is locked, or when the user user is locked or not running.

startShortcut

public void startShortcut (ShortcutInfo shortcut, Rect sourceBounds, Bundle startActivityOptions)

Launches a shortcut.

The calling launcher application must be allowed to access the shortcut information, as defined in [hasShortcutHostPermission()](/reference/android/content/pm/LauncherApps#hasShortcutHostPermission%28%29).

Parameters
shortcut ShortcutInfo: The target shortcut. This value cannot be null.
sourceBounds Rect: The Rect containing the source bounds of the clicked icon. This value may be null.
startActivityOptions Bundle: Options to pass to startActivity. This value may be null.
Throws
ActivityNotFoundException failed to start shortcut. (e.g. the shortcut no longer exists, is disabled, the intent receiver activity doesn't exist, etc)
IllegalStateException when the user is locked, or when the user user is locked or not running.

unregisterCallback

public void unregisterCallback (LauncherApps.Callback callback)

Unregisters a callback that was previously registered.

Parameters
callback LauncherApps.Callback: The callback to unregister.

unregisterPackageInstallerSessionCallback

public void unregisterPackageInstallerSessionCallback (PackageInstaller.SessionCallback callback)

Unregisters a callback that was previously registered.

Parameters
callback PackageInstaller.SessionCallback: The callback to unregister. This value cannot be null.