summaryrefslogtreecommitdiffstats
path: root/src/com/android/packageinstaller/PackageUtil.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/packageinstaller/PackageUtil.java')
-rw-r--r--src/com/android/packageinstaller/PackageUtil.java25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/com/android/packageinstaller/PackageUtil.java b/src/com/android/packageinstaller/PackageUtil.java
index b36bcf2b..6dc782de 100644
--- a/src/com/android/packageinstaller/PackageUtil.java
+++ b/src/com/android/packageinstaller/PackageUtil.java
@@ -118,4 +118,29 @@ public class PackageUtil {
}
return false;
}
+
+ /**
+ * Returns an intent that can be used to launch the main activity in the given package.
+ *
+ * @param ctx
+ * @param packageName
+ * @return an intent launching the main activity in the given package
+ */
+ public static Intent getLaunchIntentForPackage(Context ctx, String packageName) {
+ Intent intent = new Intent(Intent.ACTION_MAIN);
+ intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ PackageManager manager = ctx.getPackageManager();
+ Intent intentToResolve = new Intent(Intent.ACTION_MAIN, null);
+ intentToResolve.addCategory(Intent.CATEGORY_LAUNCHER);
+ final List<ResolveInfo> apps =
+ manager.queryIntentActivities(intentToResolve, 0);
+ // TODO in future add a new tag to application for launchable main activity
+ for (ResolveInfo app : apps) {
+ if (app.activityInfo.packageName.equals(packageName)) {
+ intent.setClassName(packageName, app.activityInfo.name);
+ return intent;
+ }
+ }
+ return null;
+ }
}