Fix launching of activities that I broke.
Change-Id: I39f4189bad6bdecdc7f9362410f36453fd816121
diff --git a/core/java/android/app/ApplicationPackageManager.java b/core/java/android/app/ApplicationPackageManager.java
index 7589e99..4018703 100644
--- a/core/java/android/app/ApplicationPackageManager.java
+++ b/core/java/android/app/ApplicationPackageManager.java
@@ -101,24 +101,23 @@
Intent intentToResolve = new Intent(Intent.ACTION_MAIN);
intentToResolve.addCategory(Intent.CATEGORY_INFO);
intentToResolve.setPackage(packageName);
- ResolveInfo resolveInfo = resolveActivity(intentToResolve, 0);
+ List<ResolveInfo> ris = queryIntentActivities(intentToResolve, 0);
// Otherwise, try to find a main launcher activity.
- if (resolveInfo == null) {
+ if (ris == null || ris.size() <= 0) {
// reuse the intent instance
intentToResolve.removeCategory(Intent.CATEGORY_INFO);
intentToResolve.addCategory(Intent.CATEGORY_LAUNCHER);
intentToResolve.setPackage(packageName);
- resolveInfo = resolveActivity(intentToResolve, 0);
+ ris = queryIntentActivities(intentToResolve, 0);
}
- if (resolveInfo == null) {
+ if (ris == null || ris.size() <= 0) {
return null;
}
Intent intent = new Intent(intentToResolve);
- // Note: we do NOT fill in the component name; we'll leave the
- // Intent unspecified, so if there are multiple matches within the
- // package something reasonable will happen.
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ intent.setClassName(ris.get(0).activityInfo.packageName,
+ ris.get(0).activityInfo.name);
return intent;
}