diff --git a/core/java/android/content/IntentFilter.java b/core/java/android/content/IntentFilter.java index 11d3f529b0faa..79da1f6ab2826 100644 --- a/core/java/android/content/IntentFilter.java +++ b/core/java/android/content/IntentFilter.java @@ -1581,12 +1581,13 @@ public class IntentFilter implements Parcelable { * @param wildcardSupported if true, will allow parameters to use wildcards */ private int matchData(String type, String scheme, Uri data, boolean wildcardSupported) { - final ArrayList types = mDataTypes; + final boolean wildcardWithMimegroups = wildcardSupported && countMimeGroups() != 0; + final List types = mDataTypes; final ArrayList schemes = mDataSchemes; int match = MATCH_CATEGORY_EMPTY; - if (types == null && schemes == null) { + if (!wildcardWithMimegroups && types == null && schemes == null) { return ((type == null && data == null) ? (MATCH_CATEGORY_EMPTY+MATCH_ADJUSTMENT_NORMAL) : NO_MATCH_DATA); } @@ -1641,7 +1642,9 @@ public class IntentFilter implements Parcelable { } } - if (types != null) { + if (wildcardWithMimegroups) { + return MATCH_CATEGORY_TYPE; + } else if (types != null) { if (findMimeType(type)) { match = MATCH_CATEGORY_TYPE; } else {