{
	"id": "fc3bb13c-df97-43d5-b66c-2c163e169f30",
	"created_at": "2026-04-06T00:18:42.083949Z",
	"updated_at": "2026-04-10T03:19:58.466608Z",
	"deleted_at": null,
	"sha1_hash": "5c2d5e6c629b70878e155e07c208aacce71da26b",
	"title": "LauncherApps  |  API reference  |  Android Developers",
	"llm_title": "",
	"authors": "",
	"file_creation_date": "0001-01-01T00:00:00Z",
	"file_modification_date": "0001-01-01T00:00:00Z",
	"file_size": 216864,
	"plain_text": "LauncherApps  |  API reference  |  Android Developers\r\nArchived: 2026-04-05 14:33:51 UTC\r\nLauncherApps Stay organized with collections Save and categorize content based on your\r\npreferences.\r\nopen class LauncherApps\r\nClass for retrieving a list of launchable activities for the current user and any associated managed profiles that are visible to\r\nthe current user, which can be retrieved with getProfiles . This is mainly for use by launchers. Apps can be queried for\r\neach user profile. Since the PackageManager will not deliver package broadcasts for other profiles, you can register for\r\npackage changes here.\r\nTo watch for managed profiles being added or removed, register for the following broadcasts:\r\nIntent.ACTION_MANAGED_PROFILE_ADDED and Intent.ACTION_MANAGED_PROFILE_REMOVED .\r\nNote as of Android O, apps on a managed profile are no longer allowed to access apps on the main profile. Apps can only\r\naccess profiles returned by getProfiles() .\r\nSummary\r\nNested classes\r\nopen\r\nArchiveCompatibilityParams\r\nUsed to enable Archiving compatibility options with setArchiveCompatibility .\r\nabstract\r\nCallback\r\nCallbacks for package changes to this and related managed profiles.\r\nPinItemRequest\r\nRepresents a \"pin shortcut\" or a \"pin appwidget\" request made by an app, which is sent with an\r\nACTION_CONFIRM_PIN_SHORTCUT or ACTION_CONFIRM_PIN_APPWIDGET intent respectively to the default\r\nlauncher app.\r\nopen\r\nShortcutQuery\r\nRepresents a query passed to getShortcuts(ShortcutQuery,UserHandle) .\r\nConstants\r\nstatic\r\nString\r\nACTION_CONFIRM_PIN_APPWIDGET\r\nActivity Action: For the default launcher to show the confirmation dialog to create a pinned app widget.\r\nhttps://developer.android.com/reference/kotlin/android/content/pm/LauncherApps#getactivitylist\r\nPage 1 of 11\n\nstatic\r\nString\r\nACTION_CONFIRM_PIN_SHORTCUT\r\nActivity Action: For the default launcher to show the confirmation dialog to create a pinned shortcut.\r\nstatic\r\nString\r\nEXTRA_PIN_ITEM_REQUEST\r\nAn extra for ACTION_CONFIRM_PIN_SHORTCUT \u0026 ACTION_CONFIRM_PIN_APPWIDGET containing a\r\nPinItemRequest of appropriate type asked to pin.\r\nPublic methods\r\nopen MutableList\u003cLauncherActivityInfo!\u003e!\r\ngetActivityList(packageName:String!, user:UserHandle!)\r\nRetrieves a list of activities that specify Intent.ACTION_MAIN and Intent.CATEGORY_LAU\r\nacross all apps, for a specified user.\r\nopen\r\nMutableList\u003cPackageInstaller.SessionInfo!\u003e\r\ngetAllPackageInstallerSessions()\r\nReturn list of all known install sessions in this user and managed profiles, regardless of th\r\ninstaller.\r\nopen IntentSender?\r\ngetAppMarketActivityIntent(packageName:String?, user:UserHandle)\r\nReturns an intent sender which can be used to start the App Market activity (Installer Act\r\nopen ApplicationInfo!\r\ngetApplicationInfo(packageName:String, flags:Int, user:UserHandle)\r\nReturns ApplicationInfo about an application installed for a specific user profile.\r\nLauncherUserInfo?\r\ngetLauncherUserInfo(userHandle:UserHandle)\r\nReturns information related to a user which is useful for displaying UI elements to disting\r\nfrom other users (eg, badges).\r\nopen LauncherApps.PinItemRequest!\r\ngetPinItemRequest(intent:Intent!)\r\nA helper method to extract a PinItemRequest set to the EXTRA_PIN_ITEM_REQUEST extra\r\nopen MutableList\u003cString!\u003e\r\ngetPreInstalledSystemPackages(userHandle:UserHandle)\r\nReturns the list of the system packages that are installed at user creation.\r\nopen IntentSender?\r\ngetPrivateSpaceSettingsIntent()\r\nReturns IntentSender which can be used to start the Private Space Settings Activity.\r\nhttps://developer.android.com/reference/kotlin/android/content/pm/LauncherApps#getactivitylist\r\nPage 2 of 11\n\nopen MutableList\u003cUserHandle!\u003e!\r\ngetProfiles()\r\nReturn a list of profiles that the caller can access via the LauncherApps APIs.\r\nopen Drawable!\r\ngetShortcutBadgedIconDrawable(shortcut:ShortcutInfo!, density:Int)\r\nReturns the shortcut icon with badging appropriate for the profile.\r\nopen IntentSender?\r\ngetShortcutConfigActivityIntent(info:LauncherActivityInfo)\r\nReturns an intent sender which can be used to start the configure activity for creating cus\r\nshortcuts.\r\nopen MutableList\u003cLauncherActivityInfo!\u003e!\r\ngetShortcutConfigActivityList(packageName:String?, user:UserHandle)\r\nRetrieves a list of config activities for creating ShortcutInfo .\r\nopen Drawable!\r\ngetShortcutIconDrawable(shortcut:ShortcutInfo, density:Int)\r\nReturns the icon for this shortcut, without any badging for the profile.\r\nopen PendingIntent?\r\ngetShortcutIntent(packageName:String, shortcutId:String, opts:Bundle?,\r\nuser:UserHandle)\r\nReturns PendingIntent associated with specified shortcut.\r\nopen MutableList\u003cShortcutInfo!\u003e?\r\ngetShortcuts(query:LauncherApps.ShortcutQuery, user:UserHandle)\r\nReturns ShortcutInfo s that match query .\r\nopen Bundle?\r\ngetSuspendedPackageLauncherExtras(packageName:String!, user:UserHandle!)\r\nGets the launcher extras supplied to the system when the given package was suspended v\r\nPackageManager#setPackagesSuspended(String[], boolean, PersistableBundle,\r\nPersistableBundle, String) .\r\nopen Boolean\r\nhasShortcutHostPermission()\r\nReturns whether the caller can access the shortcut information.\r\nopen Boolean\r\nisActivityEnabled(component:ComponentName!, user:UserHandle!)\r\nChecks if the activity exists and it enabled for a profile.\r\nopen Boolean\r\nisPackageEnabled(packageName:String!, user:UserHandle!)\r\nChecks if the package is installed and enabled for a profile.\r\nhttps://developer.android.com/reference/kotlin/android/content/pm/LauncherApps#getactivitylist\r\nPage 3 of 11\n\nopen Unit\r\npinShortcuts(packageName:String, shortcutIds:MutableList\u003cString!\u003e,\r\nuser:UserHandle)\r\nPin shortcuts on a package.\r\nopen Unit\r\nregisterCallback(callback:LauncherApps.Callback!)\r\nRegisters a callback for changes to packages in this user and managed profiles.\r\nopen Unit\r\nregisterCallback(callback:LauncherApps.Callback!, handler:Handler!)\r\nRegisters a callback for changes to packages in this user and managed profiles.\r\nopen Unit\r\nregisterPackageInstallerSessionCallback(executor:Executor,\r\ncallback:PackageInstaller.SessionCallback)\r\nRegister a callback to watch for session lifecycle events in this user and managed profiles\r\nopen LauncherActivityInfo!\r\nresolveActivity(intent:Intent!, user:UserHandle!)\r\nReturns the activity info for a given intent and user handle, if it resolves.\r\nopen Unit\r\nsetArchiveCompatibility(params:LauncherApps.ArchiveCompatibilityParams)\r\nDisable different archive compatibility options of the launcher for the caller of this metho\r\nopen Boolean\r\nshouldHideFromSuggestions(packageName:String, user:UserHandle)\r\nReturns whether a package should be hidden from suggestions to the user.\r\nopen Unit\r\nstartAppDetailsActivity(component:ComponentName!, user:UserHandle!,\r\nsourceBounds:Rect!, opts:Bundle!)\r\nStarts the settings activity to show the application details for a package in the specified pr\r\nopen Unit\r\nstartMainActivity(component:ComponentName!, user:UserHandle!, sourceBounds:\r\nopts:Bundle!)\r\nStarts a Main activity in the specified profile.\r\nopen Unit\r\nstartPackageInstallerSessionDetailsActivity(sessionInfo:PackageInstaller.Sess\r\nsourceBounds:Rect?, opts:Bundle?)\r\nStarts an activity to show the details of the specified session.\r\nopen Unit\r\nstartShortcut(shortcut:ShortcutInfo, sourceBounds:Rect?,\r\nstartActivityOptions:Bundle?)\r\nhttps://developer.android.com/reference/kotlin/android/content/pm/LauncherApps#getactivitylist\r\nPage 4 of 11\n\nLaunches a shortcut.\r\nopen Unit\r\nstartShortcut(packageName:String, shortcutId:String, sourceBounds:Rect?,\r\nstartActivityOptions:Bundle?, user:UserHandle)\r\nStarts a shortcut.\r\nopen Unit\r\nunregisterCallback(callback:LauncherApps.Callback!)\r\nUnregisters a callback that was previously registered.\r\nopen Unit\r\nunregisterPackageInstallerSessionCallback(callback:PackageInstaller.SessionCa\r\nUnregisters a callback that was previously registered.\r\nConstants\r\nACTION_CONFIRM_PIN_SHORTCUT\r\nstatic val ACTION_CONFIRM_PIN_SHORTCUT: String\r\nActivity Action: For the default launcher to show the confirmation dialog to create a pinned shortcut.\r\nSee the ShortcutManager javadoc for details.\r\nUse getPinItemRequest(Intent) to get a PinItemRequest object, and call PinItemRequest.accept(Bundle) if the user\r\naccepts. If the user doesn't accept, no further action is required.\r\nValue: \"android.content.pm.action.CONFIRM_PIN_SHORTCUT\"\r\nstatic val EXTRA_PIN_ITEM_REQUEST: String\r\nAn extra for ACTION_CONFIRM_PIN_SHORTCUT \u0026 ACTION_CONFIRM_PIN_APPWIDGET containing a PinItemRequest of\r\nappropriate type asked to pin.\r\nA helper function getPinItemRequest(Intent) can be used instead of using this constant directly.\r\nValue: \"android.content.pm.extra.PIN_ITEM_REQUEST\"\r\nPublic methods\r\ngetActivityList\r\nopen fun getActivityList(\r\npackageName:String!,\r\nuser:UserHandle!\r\n): MutableList\u003cLauncherActivityInfo!\u003e!\r\nRetrieves a list of activities that specify Intent.ACTION_MAIN and Intent.CATEGORY_LAUNCHER , across all apps, for a\r\nspecified user. If an app doesn't have any activities that specify ACTION_MAIN or CATEGORY_LAUNCHER , the system adds a\r\nsynthesized activity to the list. This synthesized activity represents the app's details page within system settings.\r\nhttps://developer.android.com/reference/kotlin/android/content/pm/LauncherApps#getactivitylist\r\nPage 5 of 11\n\nNote: It's possible for system apps, such as app stores, to prevent the system from adding synthesized activities to the\r\nreturned list.\r\nAs of Android Q, at least one of the app's activities or synthesized activities appears in the returned list unless the app\r\nsatisfies at least one of the following conditions:\r\nThe app is a system app.\r\nThe app doesn't request any permissions.\r\nThe app doesn't have a launcher activity that is enabled by default. A launcher activity has an intent containing the\r\nACTION_MAIN action and the CATEGORY_LAUNCHER category.\r\nAdditionally, the system hides synthesized activities for some or all apps in the following enterprise-related cases:\r\nIf the device is a fully managed device, no synthesized activities for any app appear in the returned list.\r\nIf the current user has a work profile, no synthesized activities for the user's work apps appear in the returned list.\r\nIf the user in question is a hidden profile UserManager.USER_TYPE_PROFILE_PRIVATE , caller should have normal\r\nandroid.Manifest.permission#ACCESS_HIDDEN_PROFILES permission and the android.app.role.RoleManager#ROLE_HOME\r\nrole.\r\nParameters\r\npackageName String!: The specific package to query. If null, it checks all installed packages in the profile.\r\nuser UserHandle!: The UserHandle of the profile.\r\ngetAppMarketActivityIntent\r\nopen fun getAppMarketActivityIntent(\r\npackageName:String?,\r\nuser:UserHandle\r\n): IntentSender?\r\nReturns an intent sender which can be used to start the App Market activity (Installer Activity). This method is primarily\r\nused to get an intent sender which starts App Market activity for another profile, if the caller is not otherwise allowed to start\r\nactivity in that profile.\r\nWhen packageName is set, intent sender to start the App Market Activity which installed the package in calling user will be\r\nreturned, but for the profile passed.\r\nWhen packageName is not set, intent sender to launch the default App Market Activity for the profile will be returned. In\r\ncase there are multiple App Market Activities available for the profile, IntentPicker will be started, allowing user to choose\r\nthe preferred activity.\r\nThe method will fall back to the behaviour of not having the packageName set, in case:\r\nNo activity for the packageName is found in calling user-space.\r\nThe App Market Activity which installed the package in calling user-space is not present.\r\nThe App Market Activity which installed the package in calling user-space is not present in the profile passed.\r\nIf the user in question is a hidden profile UserManager.USER_TYPE_PROFILE_PRIVATE , caller should have normal\r\nandroid.Manifest.permission#ACCESS_HIDDEN_PROFILES permission and the android.app.role.RoleManager#ROLE_HOME\r\nrole.\r\nParameters\r\npackageName\r\nString?: the package for which intent sender to launch App Market Activity is required.\r\nThis value may be null .\r\nhttps://developer.android.com/reference/kotlin/android/content/pm/LauncherApps#getactivitylist\r\nPage 6 of 11\n\nuser\r\nUserHandle: the profile for which intent sender to launch App Market Activity is required.\r\nThis value cannot be null .\r\nReturn\r\nIntent\r\nSender?\r\nIntentSender object which launches the App Market Activity, null in case there is no such\r\nactivity.\r\ngetShortcutBadgedIconDrawable\r\nopen fun getShortcutBadgedIconDrawable(\r\nshortcut:ShortcutInfo!,\r\ndensity:Int\r\n): Drawable!\r\nReturns the shortcut icon with badging appropriate for the profile.\r\nThe calling launcher application must be allowed to access the shortcut information, as defined in\r\nhasShortcutHostPermission() .\r\nParameters\r\ndensity Int: Optional density for the icon, or 0 to use the default density. Use\r\nReturn\r\nDrawable! A badged icon for the shortcut.\r\nExceptions\r\njava.lang.IllegalStateException when the user is locked, or when the user user is locked or not running.\r\nSee Also\r\nandroid.content.pm.ShortcutManager\r\n#getShortcutIconDrawable(android.content.pm.ShortcutInfo,int)\r\nandroid.util.DisplayMetrics\r\ngetShortcutConfigActivityIntent\r\nopen fun getShortcutConfigActivityIntent(info:LauncherActivityInfo): IntentSender?\r\nReturns an intent sender which can be used to start the configure activity for creating custom shortcuts. Use this method if\r\nthe provider is in another profile as you are not allowed to start an activity in another profile.\r\nThe caller should receive PinItemRequest in onActivityResult on android.app.Activity#RESULT_OK .\r\nCallers must be allowed to access the shortcut information, as defined in hasShortcutHostPermission() .\r\nExceptions\r\njava.lang.IllegalStateException when the user is locked or not running.\r\njava.lang.SecurityException if hasShortcutHostPermission() is false.\r\nSee Also\r\n#getPinItemRequest(android.content.Intent)\r\nandroid.content.Intent#ACTION_CREATE_SHORTCUT\r\nhttps://developer.android.com/reference/kotlin/android/content/pm/LauncherApps#getactivitylist\r\nPage 7 of 11\n\ngetShortcutIconDrawable\r\nopen fun getShortcutIconDrawable(\r\nshortcut:ShortcutInfo,\r\ndensity:Int\r\n): Drawable!\r\nReturns the icon for this shortcut, without any badging for the profile.\r\nThe calling launcher application must be allowed to access the shortcut information, as defined in\r\nhasShortcutHostPermission() .\r\nParameters\r\nshortcut ShortcutInfo: This value cannot be null .\r\ndensity\r\nInt: The preferred density of the icon, zero for default density. Use density DPI values from Display\r\nMetrics .\r\nReturn\r\nDrawable! The drawable associated with the shortcut.\r\nExceptions\r\njava.lang.IllegalStateException when the user is locked, or when the user user is locked or not running.\r\nSee Also\r\nandroid.content.pm.ShortcutManager\r\n#getShortcutBadgedIconDrawable(android.content.pm.ShortcutInfo,int)\r\nandroid.util.DisplayMetrics\r\ngetShortcutIntent\r\nopen fun getShortcutIntent(\r\npackageName:String,\r\nshortcutId:String,\r\nopts:Bundle?,\r\nuser:UserHandle\r\n): PendingIntent?\r\nReturns PendingIntent associated with specified shortcut.\r\nParameters\r\npackageName\r\nString: The packageName of the shortcut.\r\nThis value cannot be null .\r\nshortcutId\r\nString: The id of the shortcut.\r\nThis value cannot be null .\r\nopts\r\nBundle?: This parameter is no longer supported.\r\nThis value may be null .\r\nuser\r\nUserHandle: The UserHandle of the profile.\r\nThis value cannot be null .\r\nhasShortcutHostPermission\r\nhttps://developer.android.com/reference/kotlin/android/content/pm/LauncherApps#getactivitylist\r\nPage 8 of 11\n\nopen fun hasShortcutHostPermission(): Boolean\r\nReturns whether the caller can access the shortcut information. Access is currently available to:\r\nThe current launcher (or default launcher if there is no set current launcher).\r\nThe currently active voice interaction service.\r\nNote when this method returns false , it may be a temporary situation because the user is trying a new launcher\r\napplication. The user may decide to change the default launcher back to the calling application again, so even if a launcher\r\napplication loses this permission, it does not have to purge pinned shortcut information. If the calling launcher application\r\ncontains pinned shortcuts, they will still work, even though the caller no longer has the shortcut host permission.\r\nExceptions\r\njava.lang.IllegalStateException when the user is locked.\r\npinShortcuts\r\nopen fun pinShortcuts(\r\npackageName:String,\r\nshortcutIds:MutableList\u003cString!\u003e,\r\nuser:UserHandle\r\n): Unit\r\nPin shortcuts on a package.\r\nThis API is NOT cumulative; this will replace all pinned shortcuts for the package. However, different launchers may have\r\ndifferent set of pinned shortcuts.\r\nThe calling launcher application must be allowed to access the shortcut information, as defined in\r\nhasShortcutHostPermission() .\r\nFor user-profiles with items restricted on home screen, caller must have the required permission.\r\nParameters\r\npackageName\r\nString: The target package name.\r\nThis value cannot be null .\r\nshortcutIds\r\nMutableList\u003cString!\u003e: The IDs of the shortcut to be pinned.\r\nThis value cannot be null .\r\nuser\r\nUserHandle: The UserHandle of the profile.\r\nThis value cannot be null .\r\nExceptions\r\njava.lang.IllegalStateException when the user is locked, or when the user user is locked or not running.\r\nstartPackageInstallerSessionDetailsActivity\r\nopen fun startPackageInstallerSessionDetailsActivity(\r\nsessionInfo:PackageInstaller.SessionInfo,\r\nsourceBounds:Rect?,\r\nopts:Bundle?\r\n): Unit\r\nhttps://developer.android.com/reference/kotlin/android/content/pm/LauncherApps#getactivitylist\r\nPage 9 of 11\n\nStarts an activity to show the details of the specified session.\r\nParameters\r\nsessionInfo\r\nPackageInstaller.SessionInfo: The SessionInfo of the session.\r\nThis value cannot be null .\r\nsourceBounds\r\nRect?: The Rect containing the source bounds of the clicked icon.\r\nThis value may be null .\r\nopts\r\nBundle?: Options to pass to startActivity.\r\nThis value may be null .\r\nstartShortcut\r\nopen fun startShortcut(\r\nshortcut:ShortcutInfo,\r\nsourceBounds:Rect?,\r\nstartActivityOptions:Bundle?\r\n): Unit\r\nLaunches a shortcut.\r\nThe calling launcher application must be allowed to access the shortcut information, as defined in\r\nhasShortcutHostPermission() .\r\nParameters\r\nshortcut\r\nShortcutInfo: The target shortcut.\r\nThis value cannot be null .\r\nsourceBounds\r\nRect?: The Rect containing the source bounds of the clicked icon.\r\nThis value may be null .\r\nstartActivityOptions\r\nBundle?: Options to pass to startActivity.\r\nThis value may be null .\r\nExceptions\r\nandroid.content.ActivityNot\r\nFoundException\r\nfailed to start shortcut. (e.g. the shortcut no longer exists, is disabled, the intent\r\nreceiver activity doesn't exist, etc)\r\njava.lang.IllegalState\r\nException\r\nwhen the user is locked, or when the user user is locked or not running.\r\nstartShortcut\r\nopen fun startShortcut(\r\npackageName:String,\r\nshortcutId:String,\r\nsourceBounds:Rect?,\r\nstartActivityOptions:Bundle?,\r\nuser:UserHandle\r\n): Unit\r\nStarts a shortcut.\r\nhttps://developer.android.com/reference/kotlin/android/content/pm/LauncherApps#getactivitylist\r\nPage 10 of 11\n\nThe calling launcher application must be allowed to access the shortcut information, as defined in\r\nhasShortcutHostPermission() .\r\nParameters\r\npackageName\r\nString: The target shortcut package name.\r\nThis value cannot be null .\r\nshortcutId\r\nString: The target shortcut ID.\r\nThis value cannot be null .\r\nsourceBounds\r\nRect?: The Rect containing the source bounds of the clicked icon.\r\nThis value may be null .\r\nstartActivityOptions\r\nBundle?: Options to pass to startActivity.\r\nThis value may be null .\r\nuser\r\nUserHandle: The UserHandle of the profile.\r\nThis value cannot be null .\r\nExceptions\r\nandroid.content.ActivityNot\r\nFoundException\r\nfailed to start shortcut. (e.g. the shortcut no longer exists, is disabled, the intent\r\nreceiver activity doesn't exist, etc)\r\njava.lang.IllegalState\r\nException\r\nwhen the user is locked, or when the user user is locked or not running.\r\nunregisterCallback\r\nopen fun unregisterCallback(callback:LauncherApps.Callback!): Unit\r\nUnregisters a callback that was previously registered.\r\nSource: https://developer.android.com/reference/kotlin/android/content/pm/LauncherApps#getactivitylist\r\nhttps://developer.android.com/reference/kotlin/android/content/pm/LauncherApps#getactivitylist\r\nPage 11 of 11",
	"extraction_quality": 1,
	"language": "EN",
	"sources": [
		"MITRE"
	],
	"references": [
		"https://developer.android.com/reference/kotlin/android/content/pm/LauncherApps#getactivitylist"
	],
	"report_names": [
		"LauncherApps#getactivitylist"
	],
	"threat_actors": [],
	"ts_created_at": 1775434722,
	"ts_updated_at": 1775791198,
	"ts_creation_date": 0,
	"ts_modification_date": 0,
	"files": {
		"pdf": "https://archive.orkl.eu/5c2d5e6c629b70878e155e07c208aacce71da26b.pdf",
		"text": "https://archive.orkl.eu/5c2d5e6c629b70878e155e07c208aacce71da26b.txt",
		"img": "https://archive.orkl.eu/5c2d5e6c629b70878e155e07c208aacce71da26b.jpg"
	}
}