| java.lang.Object | ||
| android.content.IntentFilter | Parcelable | |
Structured description of Intent values to be matched. An IntentFilter can match against actions, categories, and data (either via its type, scheme, and/or path) in an Intent. It also includes a "priority" value which is used to order multiple matching filters.
IntentFilter objects are often created in XML as part of a package's AndroidManifest.xml file, using intent-filter tags.
There are three Intent characteristics you can filter on: the action, data, and categories. For each of these characteristics you can provide multiple possible matching values (via addAction(String), addDataType(String), addDataScheme(String) addDataAuthority(String, String), addDataPath(String), and addCategory(String), respectively). For actions, the field will not be tested if no values have been given (treating it as a wildcard); if no data characteristics are specified, however, then the filter will only match intents that contain no data.
The data characteristic is itself divided into three attributes: type, scheme, authority, and path. Any that are specified must match the contents of the Intent. If you specify a scheme but no type, then any type will match; if you specify a type but no scheme, then any scheme will match. If you specify neither, then only an Intent with no data or type will match. To specify an authority, you must also specify one or more schemes that it is associated with. To specify a path, you also must specify both one or more authorities and one or more schemes it is associated with.
A match is based on the following rules. Note that for an IntentFilter to match an Intent, three conditions must hold: the action and category must match, and either the data type or data scheme+authority+path must match.
Action matches if any of the given values match the Intent action, or if no actions were specified in the filter.
Data Type matches if any of the given values match the Intent type. The Intent type is determined by calling resolveType(ContentResolver). A wildcard can be used for the MIME sub-type, in both the Intent and IntentFilter, so that the type "audio/*" will match "audio/mpeg", "audio/aiff", "audio/*", etc.
Data Scheme matches if any of the given values match the Intent data's scheme. The Intent scheme is determined by calling getData() and getScheme() on that URI.
Data Authority matches if any of the given values match the Intent's data authority and one of the data scheme's in the filter has matched the Intent, or no authories were supplied in the filter. The Intent authority is determined by calling getData() and getAuthority() on that URI.
Data Path matches if any of the given values match the Intent's data path and both a scheme and authority in the filter has matched against the Intent, or no paths were supplied in the filter. The Intent authority is determined by calling getData() and getPath() on that URI.
Categories match if all of the categories in the Intent match categories given in the filter. Extra categories in the filter that are not in the Intent will not cause the match to fail. Note that unlike the action, an IntentFilter with no categories will only match an Intent that does not have any categories.
Nested Classes| IntentFilter.AuthorityEntry | This is an entry for a single authority in the Iterator returned by authoritiesIterator(). |
| IntentFilter.MalformedMimeTypeException | This exception is thrown when a given MIME type does not have a valid syntax. |
| IntentFilter.PathEntry | This is an entry for a single path in the Iterator returned by pathsIterator(). |
| Value | ||||
|---|---|---|---|---|
| Creator | CREATOR | |||
| int | MATCH_AUTHORITY | 30000 | 0x00007530 | |
| int | MATCH_EMPTY | 10000 | 0x00002710 | |
| int | MATCH_PATH | 40000 | 0x00009c40 | |
| int | MATCH_SCHEME | 20000 | 0x00004e20 | |
| int | MATCH_TYPE | 100000 | 0x000186a0 | |
| int | NO_MATCH_ACTION | -3 | 0xfffffffd | |
| int | NO_MATCH_CATEGORY | -4 | 0xfffffffc | |
| int | NO_MATCH_DATA | -2 | 0xfffffffe | |
| int | NO_MATCH_TYPE | -1 | 0xffffffff | |
| int | SYSTEM_HIGH_PRIORITY | The filter setPriority(int) value at which system high-priority receivers are placed; that is, receivers that should execute before application code. | 1000 | 0x000003e8 |
| int | SYSTEM_LOW_PRIORITY | The filter setPriority(int) value at which system low-priority receivers are placed; that is, receivers that should execute after application code. | -1000 | 0xfffffc18 |
| IntentFilter() | |||||
| New empty IntentFilter. | |||||
| IntentFilter(String action) | |||||
| New IntentFilter that matches a single action. | |||||
| IntentFilter(String action, String dataType) | |||||
| New IntentFilter that matches a single action and data type. | |||||
| IntentFilter(IntentFilter o) | |||||
| New IntentFilter containing a copy of an existing filter. | |||||
| final | Iterator | actionsIterator() | |||
| Return an iterator over the filter's actions. | |||||
| final | void | addAction(String action) | |||
| Add a new Intent action to match against. | |||||
| final | void | addCategory(String category) | |||
| Add a new Intent category to match against. | |||||
| final | void | addDataAuthority(String host, String port) | |||
| Add a new Intent data authority to match against. | |||||
| final | void | addDataPath(String path) | |||
| Add a new Intent data oath to match against. | |||||
| final | void | addDataScheme(String scheme) | |||
| Add a new Intent data scheme to match against. | |||||
| final | void | addDataType(String type) | |||
| Add a new Intent data type to match against. | |||||
| final | Iterator | authoritiesIterator() | |||
| Return an iterator over the filter's data authorities. | |||||
| final | Iterator | categoriesIterator() | |||
| Return an iterator over the filter's categories. | |||||
| static | IntentFilter | create(String action, String dataType) | |||
| Create a new IntentFilter instance with a specified action and MIME type, where you know the MIME type is correctly formatted. | |||||
| void | dump(Printer du, String prefix) | ||||
| final | int | getPriority() | |||
| Return the priority of this filter. | |||||
| final | boolean | hasAction(String action) | |||
| Is the given action included in the filter? Note that if the filter does not include any actions, false will always be returned. | |||||
| final | boolean | hasCategory(String category) | |||
| Is the given category included in the filter? | |||||
| final | boolean | hasDataAuthority(Uri data) | |||
| Is the given data authority included in the filter? Note that if the filter does not include any authorities, false will always be returned. | |||||
| final | boolean | hasDataPath(String data) | |||
| Is the given data path included in the filter? Note that if the filter does not include any paths, false will always be returned. | |||||
| final | boolean | hasDataScheme(String scheme) | |||
| Is the given data scheme included in the filter? Note that if the filter does not include any scheme, false will always be returned. | |||||
| final | boolean | hasDataType(String type) | |||
| Is the given data type included in the filter? Note that if the filter does not include any type, false will always be returned. | |||||
| final | int | match(String action, String type, String scheme, Uri data, Set categories, String logTag) | |||
| Test whether this filter matches the given intent data. | |||||
| final | int | match(ContentResolver resolver, Intent intent, boolean resolve, String logTag) | |||
| Test whether this filter matches the given intent. | |||||
| final | boolean | matchAction(String action) | |||
| Match this filter against an Intent's action. | |||||
| final | String | matchCategories(Set categories) | |||
| Match this filter against an Intent's categories. | |||||
| final | int | matchData(String type, String scheme, Uri data) | |||
| Match this filter against an Intent's data (type, scheme and path). | |||||
| final | Iterator | pathsIterator() | |||
| Return an iterator over the filter's data paths. | |||||
| final | Iterator | schemesIterator() | |||
| Return an iterator over the filter's data schemes. | |||||
| final | void | setPriority(int priority) | |||
| Modify priority of this filter. | |||||
| final | Iterator | typesIterator() | |||
| Return an iterator over the filter's data types. | |||||
| final | void | writeToParcel(Parcel dest) | |||
Methods inherited
from class
java.lang.Object
Methods inherited
from interface
android.os.Parcelable
| action | The action to match, i.e. Intent.MAIN_ACTION. |
|---|
Throws IntentFilter.MalformedMimeTypeException if the given MIME type is not syntactically correct.
| action | The action to match, i.e. Intent.VIEW_ACTION. |
|---|---|
| dataType | The type to match, i.e. "vnd.android.cursor.dir/person". |
| o | The original filter to copy. |
|---|
| action | Name of the action to match, i.e. Intent.VIEW_ACTION. |
|---|
| category | Name of category to match, i.e. Intent.EMBED_CATEGORY. |
|---|
| host | The host part of the authority to match. May start with a single '*' to wildcard the front of the host name. |
|---|---|
| port | Optional port part of the authority to match. If null, any port is allowed. |
| path | Regexp of the path to match, i.e. "/picviewer?pic=.*". |
|---|
| scheme | Name of the scheme to match, i.e. "http:". |
|---|
Throws IntentFilter.MalformedMimeTypeException if the given MIME type is not syntactically correct.
| type | Name of the data type to match, i.e. "vnd.android.cursor.dir/person". |
|---|
| action | The action to match, i.e. Intent.VIEW_ACTION. |
|---|---|
| dataType | The type to match, i.e. "vnd.android.cursor.dir/person". |
| action | The action to look for. |
|---|
| category | The category that the filter supports. |
|---|
| data | The data whose authority is being looked for. |
|---|
| data | The data path to look for. This is without the scheme prefix. |
|---|
| scheme | The data scheme to look for. |
|---|
| type | The data type to look for. |
|---|
| action | The intent action to match against (Intent.getAction). |
|---|---|
| type | The intent type to match against (Intent.resolveType()). |
| scheme | The data scheme to match against (Intent.getScheme()). |
| data | The data URI to match against (Intent.getData()). |
| categories | The categories to match against (Intent.getCategories()). |
| logTag | Tag to use in debugging messages. |
| intent | The Intent to compare against. |
|---|---|
| resolve | If true, the intent's type will be resolved by calling Intent.resolveType(); otherwise a simple match against Intent.type will be performed. |
| logTag | Tag to use in debugging messages. |
| action | The desired action to look for. |
|---|
| categories | The categories included in the intent, as returned by Intent.getCategories(). |
|---|
Note that to match against an authority, you must also specify a base scheme the authority is in. To match against a data path, both a scheme and authority must be specified. If the filter does not specify any types or schemes that it matches against, it is considered to be empty (any authority or data path given is ignored, as if it were empty as well).
| type | The desired data type to look for, as returned by Intent.resolveType(). |
|---|---|
| scheme | The desired data scheme to look for, as returned by Intent.getScheme(). |
| data | The full data string to match against, as supplied in Intent.data. |
| priority | The new priority value. |
|---|