diff --git a/core/java/com/android/internal/app/ResolverActivity.java b/core/java/com/android/internal/app/ResolverActivity.java index 3fc02a7ce5e04..085e159c8b217 100644 --- a/core/java/com/android/internal/app/ResolverActivity.java +++ b/core/java/com/android/internal/app/ResolverActivity.java @@ -668,12 +668,19 @@ public class ResolverActivity extends Activity { && mAdapter.mOrigResolveList != null) { // Build a reasonable intent filter, based on what matched. IntentFilter filter = new IntentFilter(); - String action = intent.getAction(); + Intent filterIntent; + if (intent.getSelector() != null) { + filterIntent = intent.getSelector(); + } else { + filterIntent = intent; + } + + String action = filterIntent.getAction(); if (action != null) { filter.addAction(action); } - Set categories = intent.getCategories(); + Set categories = filterIntent.getCategories(); if (categories != null) { for (String cat : categories) { filter.addCategory(cat); @@ -682,9 +689,9 @@ public class ResolverActivity extends Activity { filter.addCategory(Intent.CATEGORY_DEFAULT); int cat = ri.match & IntentFilter.MATCH_CATEGORY_MASK; - Uri data = intent.getData(); + Uri data = filterIntent.getData(); if (cat == IntentFilter.MATCH_CATEGORY_TYPE) { - String mimeType = intent.resolveType(this); + String mimeType = filterIntent.resolveType(this); if (mimeType != null) { try { filter.addDataType(mimeType);