summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Dianne Hackborn <hackbod@google.com> 2015-12-02 16:27:41 -0800
committer Dianne Hackborn <hackbod@google.com> 2015-12-02 16:27:41 -0800
commit99878e9b1c599ae4dae0975245b4cead1c47f1a1 (patch)
tree1da0e4043f5d3d4f437168a27d96455c92970f1e
parent47040d6247c8eeb4d2172c4970be405be9337fd2 (diff)
Add package command to print resolve activity.
Change-Id: I020a2b0e27f1430d9c2e9bf64f949e26610db147
-rw-r--r--services/core/java/com/android/server/pm/PackageManagerShellCommand.java26
1 files changed, 26 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java
index dbb58185e447..c549b8cdb29c 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 @@ class PackageManagerShellCommand extends ShellCommand {
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 @@ class PackageManagerShellCommand extends ShellCommand {
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 @@ class PackageManagerShellCommand extends ShellCommand {
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");