OSDN Git Service

Do not return AppDetailsActivity in PackageInfo
authorRicky Wai <rickywai@google.com>
Tue, 29 Jan 2019 15:19:52 +0000 (15:19 +0000)
committerRicky Wai <rickywai@google.com>
Sat, 23 Feb 2019 00:26:57 +0000 (00:26 +0000)
Also, update javadoc for LauncherApps.getActivityList()

Bug: 119789943
Test: atest android.content.pm.cts.PackageManagerTest#testGetPackageInfo
Change-Id: I1a183207e6eb880a68811d4c2a5cf77d3f71f0b0

core/java/android/content/pm/LauncherApps.java
core/java/android/content/pm/PackageParser.java

index b0d16cd..f87ce82 100644 (file)
@@ -514,7 +514,8 @@ public class LauncherApps {
 
     /**
      * Retrieves a list of launchable activities that match {@link Intent#ACTION_MAIN} and
-     * {@link Intent#CATEGORY_LAUNCHER}, for a specified user.
+     * {@link Intent#CATEGORY_LAUNCHER}, for a specified user. Result may include
+     * synthesized activities like app details Activity injected by system.
      *
      * @param packageName The specific package to query. If null, it checks all installed packages
      *            in the profile.
index d7ca757..4db7d0a 100644 (file)
@@ -724,6 +724,9 @@ public class PackageParser {
                 for (int i = 0; i < N; i++) {
                     final Activity a = p.activities.get(i);
                     if (state.isMatch(a.info, flags)) {
+                        if (PackageManager.APP_DETAILS_ACTIVITY_CLASS_NAME.equals(a.className)) {
+                            continue;
+                        }
                         res[num++] = generateActivityInfo(a, flags, state, userId);
                     }
                 }