Add package command to print resolve activity.

Change-Id: I020a2b0e27f1430d9c2e9bf64f949e26610db147
diff --git a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java
index dbb5818..c549b8c 100644
--- a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java
+++ b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java
@@ -101,6 +101,8 @@
                     return runList();
                 case "uninstall":
                     return runUninstall();
+                case "resolve-activity":
+                    return runResolveActivity();
                 case "query-intent-activities":
                     return runQueryIntentActivities();
                 case "query-intent-services":
@@ -565,6 +567,28 @@
         return intent;
     }
 
+    private int runResolveActivity() {
+        Intent intent;
+        try {
+            intent = parseIntentAndUser();
+        } catch (URISyntaxException e) {
+            throw new RuntimeException(e.getMessage(), e);
+        }
+        try {
+            ResolveInfo ri = mInterface.resolveIntent(intent, null, 0, mTargetUser);
+            PrintWriter pw = getOutPrintWriter();
+            if (ri == null) {
+                pw.println("No activity found");
+            } else {
+                PrintWriterPrinter pr = new PrintWriterPrinter(pw);
+                ri.dump(pr, "");
+            }
+        } catch (RemoteException e) {
+            throw new RuntimeException("Failed calling service", e);
+        }
+        return 0;
+    }
+
     private int runQueryIntentActivities() {
         Intent intent;
         try {
@@ -1016,6 +1040,8 @@
         pw.println("      -s: short summary");
         pw.println("      -d: only list dangerous permissions");
         pw.println("      -u: list only the permissions users will see");
+        pw.println("  resolve-intent [--user USER_ID] INTENT");
+        pw.println("    Prints the activity that resolves to the given Intent.");
         pw.println("  query-intent-activities [--user USER_ID] INTENT");
         pw.println("    Prints all activities that can handle the given Intent.");
         pw.println("  query-intent-services [--user USER_ID] INTENT");