Most visited

Recently visited

Added in API level 1

IntentFilter

public class IntentFilter
extends Object implements Parcelable

java.lang.Object
   ↳ android.content.IntentFilter


要匹配的意向值的结构化描述。 IntentFilter可以与Intent中的动作,类别和数据(通过其类型,方案和/或路径)进行匹配。 它还包含用于排序多个匹配滤波器的“优先级”值。

IntentFilter对象通常使用 intent-filter标签作为包的 AndroidManifest.xml文件的一部分以XML格式创建。

有三种您可以过滤的Intent特性: 操作数据类别 对于每一个这些特征也可以提供多个可能的匹配值(通过addAction(String)addDataType(String)addDataScheme(String)addDataSchemeSpecificPart(String, int)addDataAuthority(String, String)addDataPath(String, int) ,和addCategory(String) ,分别地)。 对于行动,如果没有给出任何值,则不会测试该字段(将其视为通配符); 如果没有指定数据特征,那么过滤器将只匹配不包含数据的意图。

数据特征本身分为三个属性:类型,方案,权限和路径。 任何指定的内容都必须与Intent的内容相匹配。 如果你指定了一个方案,但没有类型,只有没有类型的Intent(比如mailto :)会匹配; content:URI永远不会匹配,因为它们始终具有由其内容提供者提供的MIME类型。 指定没有方案的类型具有某种特殊含义:它将匹配没有URI字段的Intent,或者匹配具有content:或file:URI的Intent。 如果您不指定,则只有一个没有数据或类型的Intent会匹配。 要指定权限,还必须指定一个或多个与之关联的方案。 要指定路径,还必须指定一个或多个权限以及与之关联的一个或多个方案。

Developer Guides

有关如何创建和解析意图的信息,请阅读 Intents and Intent Filters开发人员指南。

Filter Rules

匹配基于以下规则。 请注意,对于与Intent匹配的IntentFilter,必须满足三个条件: 操作类别必须匹配,并且数据( 数据类型数据模式+权限+路径(如果指定)必须匹配(有关如何更多详细信息,请参见match(ContentResolver, Intent, boolean, String)数据字段匹配)。

如果任何给定值与Intent 操作匹配,则操作匹配; 如果过滤器没有指定任何操作,那么它只会匹配不包含操作的Intents。

如果任何给定值与Intent 类型匹配,则数据类型匹配。 意图类型通过调用resolveType(ContentResolver)来确定。 通配符可用于Intent和IntentFilter中的MIME子类型,因此“audio / *”类型将匹配“audio / mpeg”,“audio / aiff”,“audio / *”等。 请注意,这里的MIME类型匹配区分大小写 ,与正式的RFC MIME类型不同! 因此,您应该始终为您的MIME类型使用小写字母。

如果任何给定值与Intent数据的方案匹配,则数据方案匹配。 意图方案通过在该URI上调用getData()getScheme()来确定。 请注意,这里的方案匹配区分大小写 ,与正式的RFC方案不同! 因此,您应该始终为您的计划使用小写字母。

数据方案的具体部分 ,如果任何给定值的符合目的的数据方案的特定部分已经匹配了意图, 在过滤器中提供的方案没有特定部分在过滤器中的数据方案之一相匹配。 意向方案特定部分通过在该URI上调用getData()getSchemeSpecificPart()来确定。 请注意,方案特定部件匹配区分大小写

数据权限 ,如果任何给定值的符合目的的数据权限,并在过滤器中的数据方案之一已经匹配了意向, 在过滤器中没有提供的权威作者匹配。 意向权限通过调用该URI上的getData()getAuthority()来确定。 请注意,这里的权限匹配区分大小写 ,与正式的RFC主机名不同! 因此,您应该始终使用小写字母作为您的权限。

如果任何给定值的符合目的的数据路径两个在滤波器的方案和权威针对意图已匹配, 在过滤器中没有提供路径数据路径相匹配。 意向权限通过调用该URI上的getData()getPath()来确定。

分类匹配,如果所有在过滤器中给出的意图比赛类别的类别。 过滤器中不在Intent中的额外类别不会导致匹配失败。 请注意,与操作不同,没有类别的IntentFilter只会匹配没有任何类别的Intent。

Summary

Nested classes

class IntentFilter.AuthorityEntry

这是Iterator中由authoritiesIterator()返回的单个权限的条目。

class IntentFilter.MalformedMimeTypeException

当给定的MIME类型没有有效的语法时,会引发此异常。

Constants

int MATCH_ADJUSTMENT_MASK

匹配常数的一部分,将质量调整应用于匹配的基本类别。

int MATCH_ADJUSTMENT_NORMAL

质量调整适用于表示默认基准值的匹配类别; 数量越多,质量越好,而数量越少,质量越低。

int MATCH_CATEGORY_EMPTY

过滤器匹配没有指定数据的意图。

int MATCH_CATEGORY_HOST

过滤器将意图与相同的数据URI方案和授权主机相匹配。

int MATCH_CATEGORY_MASK

描述发生的匹配类别的匹配常数部分。

int MATCH_CATEGORY_PATH

过滤器将意图与相同的数据URI方案,权限和路径相匹配。

int MATCH_CATEGORY_PORT

过滤器将意图与相同的数据URI方案和权限主机和端口相匹配。

int MATCH_CATEGORY_SCHEME

过滤器将意图与相同的数据URI方案相匹配。

int MATCH_CATEGORY_SCHEME_SPECIFIC_PART

过滤器将意图与相同的数据URI方案和方案特定部分相匹配。

int MATCH_CATEGORY_TYPE

过滤器匹配具有相同数据MIME类型的意图。

int NO_MATCH_ACTION

由于动作不同,过滤器不匹配。

int NO_MATCH_CATEGORY

过滤器不匹配,因为它需要一个或多个不在Intent中的类别。

int NO_MATCH_DATA

由于数据URI不同,筛选器不匹配。

int NO_MATCH_TYPE

由于不同的MIME类型,过滤器不匹配。

int SYSTEM_HIGH_PRIORITY

系统高优先级接收器setPriority(int)的过滤器值; 也就是应该在应用程序代码之前执行的接收器。

int SYSTEM_LOW_PRIORITY

系统低优先级接收器放置的过滤器值setPriority(int) ; 也就是应该在应用程序代码之后执行的接收器。

Inherited constants

From interface android.os.Parcelable

Fields

public static final Creator<IntentFilter> CREATOR

Public constructors

IntentFilter()

新的空IntentFilter。

IntentFilter(String action)

新的IntentFilter匹配没有数据的单个操作。

IntentFilter(String action, String dataType)

新的IntentFilter匹配单个操作和数据类型。

IntentFilter(IntentFilter o)

包含现有过滤器副本的新IntentFilter。

Public methods

final Iterator<String> actionsIterator()

在过滤器的操作上返回一个迭代器。

final void addAction(String action)

添加新的Intent操作以匹配。

final void addCategory(String category)

添加一个新的Intent类别以匹配。

final void addDataAuthority(String host, String port)

添加一个新的Intent数据权限以匹配。

final void addDataPath(String path, int type)

添加一个新的Intent数据路径以匹配。

final void addDataScheme(String scheme)

添加一个新的Intent数据方案以匹配。

final void addDataSchemeSpecificPart(String ssp, int type)

添加一个新的Intent数据“方案特定部分”以匹配。

final void addDataType(String type)

添加一个新的Intent数据类型以匹配。

final Iterator<IntentFilter.AuthorityEntry> authoritiesIterator()

通过过滤器的数据权限返回一个迭代器。

final Iterator<String> categoriesIterator()

在过滤器的类别上返回一个迭代器。

final int countActions()

返回过滤器中的动作数量。

final int countCategories()

返回过滤器中的类别数量。

final int countDataAuthorities()

返回过滤器中的数据权限的数量。

final int countDataPaths()

返回过滤器中的数据路径数量。

final int countDataSchemeSpecificParts()

返回过滤器中数据方案特定部分的数量。

final int countDataSchemes()

返回过滤器中的数据方案数量。

final int countDataTypes()

返回过滤器中的数据类型数量。

static IntentFilter create(String action, String dataType)

使用指定的操作和MIME类型创建一个新的IntentFilter实例,您知道MIME类型的格式正确。

final int describeContents()

描述此Parcelable实例的封送表示中包含的特殊对象的种类。

void dump(Printer du, String prefix)
final String getAction(int index)

在过滤器中返回一个操作。

final String getCategory(int index)

在过滤器中返回一个类别。

final IntentFilter.AuthorityEntry getDataAuthority(int index)

返回过滤器中的数据权限。

final PatternMatcher getDataPath(int index)

返回过滤器中的数据路径。

final String getDataScheme(int index)

返回过滤器中的数据方案。

final PatternMatcher getDataSchemeSpecificPart(int index)

返回过滤器中的数据方案特定部分。

final String getDataType(int index)

在过滤器中返回一个数据类型。

final int getPriority()

返回此过滤器的优先级。

final boolean hasAction(String action)

给定的操作是否包含在过滤器中? 请注意,如果过滤器不包含任何操作,则将始终返回false。

final boolean hasCategory(String category)

过滤器中是否包含给定类别?

final boolean hasDataAuthority(Uri data)

过滤器中是否包含给定的数据权限? 请注意,如果过滤器不包含任何权限,则将始终返回false。

final boolean hasDataPath(String data)

给定的数据路径是否包含在过滤器中? 请注意,如果过滤器不包含任何路径,则始终会返回false。

final boolean hasDataScheme(String scheme)

给定的数据方案是否包含在过滤器中? 请注意,如果过滤器不包含任何方案,则始终会返回false。

final boolean hasDataSchemeSpecificPart(String data)

过滤器中是否包含给定的数据方案特定部分? 请注意,如果过滤器不包含任何方案特定部分,则始终会返回false。

final boolean hasDataType(String type)

过滤器中是否包含给定的数据类型? 请注意,如果过滤器不包含任何类型,则将始终返回false。

final int match(String action, String type, String scheme, Uri data, Set<String> categories, String logTag)

测试此过滤器是否与给定的意图数据匹配。

final int match(ContentResolver resolver, Intent intent, boolean resolve, String logTag)

测试这个过滤器是否符合给定的 意图

final boolean matchAction(String action)

将此过滤器与Intent的操作匹配。

final String matchCategories(Set<String> categories)

将此过滤器与Intent的类别匹配。

final int matchData(String type, String scheme, Uri data)

将此过滤器与Intent的数据(类型,方案和路径)匹配。

final int matchDataAuthority(Uri data)

将此意向过滤器与给定的Intent数据匹配。

final Iterator<PatternMatcher> pathsIterator()

在过滤器的数据路径上返回一个迭代器。

void readFromXml(XmlPullParser parser)
final Iterator<PatternMatcher> schemeSpecificPartsIterator()

将过滤器的数据方案特定部分返回一个迭代器。

final Iterator<String> schemesIterator()

通过过滤器的数据方案返回一个迭代器。

final void setPriority(int priority)

修改此过滤器的优先级。

final Iterator<String> typesIterator()

在过滤器的数据类型上返回一个迭代器。

final void writeToParcel(Parcel dest, int flags)

将此对象平铺到一个包裹中。

void writeToXml(XmlSerializer serializer)

将IntentFilter的内容作为XML流写入。

Inherited methods

From class java.lang.Object
From interface android.os.Parcelable

Constants

MATCH_ADJUSTMENT_MASK

Added in API level 1
int MATCH_ADJUSTMENT_MASK

匹配常数的一部分,将质量调整应用于匹配的基本类别。 价值MATCH_ADJUSTMENT_NORMAL是不调整; 更高的数字比提高质量更高,而更少的数字则会降低质量。

常量值:65535(0x0000ffff)

MATCH_ADJUSTMENT_NORMAL

Added in API level 1
int MATCH_ADJUSTMENT_NORMAL

质量调整适用于表示默认基准值的匹配类别; 数量越多,质量越好,而数量越少,质量越低。

常量值:32768(0x00008000)

MATCH_CATEGORY_EMPTY

Added in API level 1
int MATCH_CATEGORY_EMPTY

过滤器匹配没有指定数据的意图。

常量值:1048576(0x00100000)

MATCH_CATEGORY_HOST

Added in API level 1
int MATCH_CATEGORY_HOST

过滤器将意图与相同的数据URI方案和授权主机相匹配。

常量值:3145728(0x00300000)

MATCH_CATEGORY_MASK

Added in API level 1
int MATCH_CATEGORY_MASK

描述发生的匹配类别的匹配常数部分。 可以是MATCH_CATEGORY_EMPTYMATCH_CATEGORY_SCHEMEMATCH_CATEGORY_SCHEME_SPECIFIC_PARTMATCH_CATEGORY_HOSTMATCH_CATEGORY_PORTMATCH_CATEGORY_PATH ,或MATCH_CATEGORY_TYPE 较高的值表示更好的匹配。

常量值:268369920(0x0fff0000)

MATCH_CATEGORY_PATH

Added in API level 1
int MATCH_CATEGORY_PATH

过滤器将意图与相同的数据URI方案,权限和路径相匹配。

常量值:5242880(0x00500000)

MATCH_CATEGORY_PORT

Added in API level 1
int MATCH_CATEGORY_PORT

过滤器将意图与相同的数据URI方案和权限主机和端口相匹配。

常量值:4194304(0x00400000)

MATCH_CATEGORY_SCHEME

Added in API level 1
int MATCH_CATEGORY_SCHEME

过滤器将意图与相同的数据URI方案相匹配。

常量值:2097152(0x00200000)

MATCH_CATEGORY_SCHEME_SPECIFIC_PART

Added in API level 19
int MATCH_CATEGORY_SCHEME_SPECIFIC_PART

过滤器将意图与相同的数据URI方案和方案特定部分相匹配。

常量值:5767168(0x00580000)

MATCH_CATEGORY_TYPE

Added in API level 1
int MATCH_CATEGORY_TYPE

过滤器匹配具有相同数据MIME类型的意图。

常量值:6291456(0x00600000)

NO_MATCH_ACTION

Added in API level 1
int NO_MATCH_ACTION

由于动作不同,过滤器不匹配。

常量值:-3(0xfffffffd)

NO_MATCH_CATEGORY

Added in API level 1
int NO_MATCH_CATEGORY

过滤器不匹配,因为它需要一个或多个不在Intent中的类别。

常量值:-4(0xfffffffc)

NO_MATCH_DATA

Added in API level 1
int NO_MATCH_DATA

由于数据URI不同,筛选器不匹配。

常量值:-2(0xfffffffe)

NO_MATCH_TYPE

Added in API level 1
int NO_MATCH_TYPE

由于不同的MIME类型,过滤器不匹配。

常量值:-1(0xffffffff)

SYSTEM_HIGH_PRIORITY

Added in API level 1
int SYSTEM_HIGH_PRIORITY

系统高优先级接收器setPriority(int)的过滤器值; 也就是应该在应用程序代码之前执行的接收器。 应用程序不应使用具有此优先级或更高优先级的筛选器

也可以看看:

常量值:1000(0x000003e8)

SYSTEM_LOW_PRIORITY

Added in API level 1
int SYSTEM_LOW_PRIORITY

该过滤器setPriority(int) ,其中,系统的低优先级的接收器被置于值; 也就是应该在应用程序代码之后执行的接收器。 应用程序不应使用具有此优先级或更低优先级的筛选器

也可以看看:

常量值:-1000(0xfffffc18)

Fields

CREATOR

Added in API level 1
Creator<IntentFilter> CREATOR

Public constructors

IntentFilter

Added in API level 1
IntentFilter ()

新的空IntentFilter。

IntentFilter

Added in API level 1
IntentFilter (String action)

新的IntentFilter匹配没有数据的单个操作。 如果随后没有指定数据特征,则过滤器将仅匹配不包含数据的意图。

Parameters
action String: The action to match, i.e. Intent.ACTION_MAIN.

IntentFilter

Added in API level 1
IntentFilter (String action, 
                String dataType)

新的IntentFilter匹配单个操作和数据类型。

注意:与正式的RFC MIME类型不同,Android框架中的MIME类型匹配区分大小写。 因此,您应该始终使用小写字母编写MIME类型,并且您在从Android之外接收到的任何MIME类型应在转换为小写字母之前转换为小写。

如果给定的MIME类型在语法上不正确,则抛出 IntentFilter.MalformedMimeTypeException

Parameters
action String: The action to match, i.e. Intent.ACTION_VIEW.
dataType String: The type to match, i.e. "vnd.android.cursor.dir/person".
Throws
IntentFilter.MalformedMimeTypeException

IntentFilter

Added in API level 1
IntentFilter (IntentFilter o)

包含现有过滤器副本的新IntentFilter。

Parameters
o IntentFilter: The original filter to copy.

Public methods

actionsIterator

Added in API level 1
Iterator<String> actionsIterator ()

在过滤器的操作上返回一个迭代器。 如果没有动作,则返回null。

Returns
Iterator<String>

addAction

Added in API level 1
void addAction (String action)

添加新的Intent操作以匹配。 如果过滤器中包含任何操作,则Intent的操作必须是其中的一个值才能匹配。 如果不包含任何操作,则意向操作将被忽略。

Parameters
action String: Name of the action to match, i.e. Intent.ACTION_VIEW.

addCategory

Added in API level 1
void addCategory (String category)

添加一个新的Intent类别以匹配。 类别的语义与行为相反--Intent包含它需要的类别,所有这些类别都必须包含在过滤器中才能匹配。 换句话说,向过滤器添加类别对匹配没有影响,除非该类别在意图中指定。

Parameters
category String: Name of category to match, i.e. Intent.CATEGORY_EMBED.

addDataAuthority

Added in API level 1
void addDataAuthority (String host, 
                String port)

添加一个新的Intent数据权限以匹配。 该过滤器必须包含一个或多个方案(通过addDataScheme(String) )以供权限审议。 如果过滤器中包含任何权限,则Intent的数据必须与其中的一个匹配。 如果没有权限,那么只有该方案必须匹配。

注意:与正式RFC主机名不同,Android框架中的主机名区分大小写。 因此,您应该始终使用小写字母编写主机名称,并且在从Android外部接收到的任何主机名称应在此处提供之前转换为小写字母。

Parameters
host String: The host part of the authority to match. May start with a single '*' to wildcard the front of the host name.
port String: Optional port part of the authority to match. If null, any port is allowed.

也可以看看:

addDataPath

Added in API level 1
void addDataPath (String path, 
                int type)

添加一个新的Intent数据路径以匹配。 过滤器必须包含一个或多个方案(通过addDataScheme(String)一个或多个权威机构(通过addDataAuthority(String, String) ),以便考虑路径。 如果过滤器中包含任何路径,则Intent的数据必须与其中的一个匹配。 如果不包含路径,则只有方案/权限必须匹配。

这里给出的路径可以是必须直接匹配或匹配前缀的文字,也可以是简单的匹配模式。 如果是后者,则可以在模式中的任意位置使用'*'来匹配前一个字符的零个或多个实例,'。'。 作为匹配任何字符的通配符,'\'来转义下一个字符。

Parameters
path String: Either a raw string that must exactly match the file path, or a simple pattern, depending on type.
type int: Determines how path will be compared to determine a match: either PATTERN_LITERAL, PATTERN_PREFIX, or PATTERN_SIMPLE_GLOB.

也可以看看:

addDataScheme

Added in API level 1
void addDataScheme (String scheme)

添加一个新的Intent数据方案以匹配。 如果任何方案包括在过滤器,然后一个Intent的数据必须是这些方案中的一个一个匹配的数据类型。 如果不包含任何方案,则只有在不包含任何数据的情况下,Intent才会匹配。

注意:与正式RFC方案不同,Android框架中的方案匹配区分大小写。 因此,您应该始终使用小写字母来编写您的计划,并且您在从Android之外收到的任何计划应在转换为小写字母之前转换为小写。

Parameters
scheme String: Name of the scheme to match, i.e. "http".

也可以看看:

addDataSchemeSpecificPart

Added in API level 19
void addDataSchemeSpecificPart (String ssp, 
                int type)

添加一个新的Intent数据“方案特定部分”以匹配。 过滤器必须包含一个或多个方案(通过addDataScheme(String) ),以便考虑方案特定部分。 如果过滤器中包含任何方案特定部分,则Intent的数据必须与其中的一个匹配。 如果不包括方案特定部分,那么只有方案必须匹配。

这个匹配的“方案特定部分”是由Uri.getSchemeSpecificPart返回的字符串。 对于包含路径的Uris,这种匹配通常不感兴趣,因为addDataAuthority(String, String)addDataPath(String, int)可以提供更好的匹配它们的机制。 但是,对于不包含路径的Uris,权限和路径是空的,所以这是与非方案部分匹配的唯一方式。

Parameters
ssp String: Either a raw string that must exactly match the scheme specific part path, or a simple pattern, depending on type.
type int: Determines how ssp will be compared to determine a match: either PATTERN_LITERAL, PATTERN_PREFIX, or PATTERN_SIMPLE_GLOB.

也可以看看:

addDataType

Added in API level 1
void addDataType (String type)

添加一个新的Intent数据类型以匹配。 如果任何类型都包括在过滤器中,然后一个Intent的数据必须是这些类型中的一个一个匹配方案。 如果不包含数据类型,那么Intent只会在没有指定数据的情况下匹配。

注意:与正式的RFC MIME类型不同,Android框架中的MIME类型匹配区分大小写。 因此,您应该始终使用小写字母编写MIME类型,并且您在从Android之外接收到的任何MIME类型应在转换为小写字母之前转换为小写。

如果给定的MIME类型在语法上不正确,则抛出 IntentFilter.MalformedMimeTypeException

Parameters
type String: Name of the data type to match, i.e. "vnd.android.cursor.dir/person".
Throws
IntentFilter.MalformedMimeTypeException

也可以看看:

authoritiesIterator

Added in API level 1
Iterator<IntentFilter.AuthorityEntry> authoritiesIterator ()

通过过滤器的数据权限返回一个迭代器。

Returns
Iterator<IntentFilter.AuthorityEntry>

categoriesIterator

Added in API level 1
Iterator<String> categoriesIterator ()

在过滤器的类别上返回一个迭代器。

Returns
Iterator<String> Iterator if this filter has categories or null if none.

countActions

Added in API level 1
int countActions ()

返回过滤器中的动作数量。

Returns
int

countCategories

Added in API level 1
int countCategories ()

返回过滤器中的类别数量。

Returns
int

countDataAuthorities

Added in API level 1
int countDataAuthorities ()

返回过滤器中的数据权限的数量。

Returns
int

countDataPaths

Added in API level 1
int countDataPaths ()

返回过滤器中的数据路径数量。

Returns
int

countDataSchemeSpecificParts

Added in API level 19
int countDataSchemeSpecificParts ()

返回过滤器中数据方案特定部分的数量。

Returns
int

countDataSchemes

Added in API level 1
int countDataSchemes ()

返回过滤器中的数据方案数量。

Returns
int

countDataTypes

Added in API level 1
int countDataTypes ()

返回过滤器中的数据类型数量。

Returns
int

create

Added in API level 1
IntentFilter create (String action, 
                String dataType)

使用指定的操作和MIME类型创建一个新的IntentFilter实例,您知道MIME类型的格式正确。 这会捕获构造函数可以调用的IntentFilter.MalformedMimeTypeException异常,并将其变为运行时异常。

Parameters
action String: The action to match, i.e. Intent.ACTION_VIEW.
dataType String: The type to match, i.e. "vnd.android.cursor.dir/person".
Returns
IntentFilter A new IntentFilter for the given action and type.

也可以看看:

describeContents

Added in API level 1
int describeContents ()

描述此Parcelable实例的封送表示中包含的特殊对象的种类。 例如,如果对象将在writeToParcel(Parcel, int)的输出中包含writeToParcel(Parcel, int) ,则此方法的返回值必须包含CONTENTS_FILE_DESCRIPTOR位。

Returns
int a bitmask indicating the set of special object types marshaled by this Parcelable object instance.

dump

Added in API level 1
void dump (Printer du, 
                String prefix)

Parameters
du Printer
prefix String

getAction

Added in API level 1
String getAction (int index)

在过滤器中返回一个操作。

Parameters
index int
Returns
String

getCategory

Added in API level 1
String getCategory (int index)

在过滤器中返回一个类别。

Parameters
index int
Returns
String

getDataAuthority

Added in API level 1
IntentFilter.AuthorityEntry getDataAuthority (int index)

返回过滤器中的数据权限。

Parameters
index int
Returns
IntentFilter.AuthorityEntry

getDataPath

Added in API level 1
PatternMatcher getDataPath (int index)

返回过滤器中的数据路径。

Parameters
index int
Returns
PatternMatcher

getDataScheme

Added in API level 1
String getDataScheme (int index)

返回过滤器中的数据方案。

Parameters
index int
Returns
String

getDataSchemeSpecificPart

Added in API level 19
PatternMatcher getDataSchemeSpecificPart (int index)

返回过滤器中的数据方案特定部分。

Parameters
index int
Returns
PatternMatcher

getDataType

Added in API level 1
String getDataType (int index)

在过滤器中返回一个数据类型。

Parameters
index int
Returns
String

getPriority

Added in API level 1
int getPriority ()

返回此过滤器的优先级。

Returns
int The priority of the filter.

也可以看看:

hasAction

Added in API level 1
boolean hasAction (String action)

给定的操作是否包含在过滤器中? 请注意,如果过滤器不包含任何操作,则将始终返回false。

Parameters
action String: The action to look for.
Returns
boolean True if the action is explicitly mentioned in the filter.

hasCategory

Added in API level 1
boolean hasCategory (String category)

过滤器中是否包含给定类别?

Parameters
category String: The category that the filter supports.
Returns
boolean True if the category is explicitly mentioned in the filter.

hasDataAuthority

Added in API level 1
boolean hasDataAuthority (Uri data)

过滤器中是否包含给定的数据权限? 请注意,如果过滤器不包含任何权限,则将始终返回false。

Parameters
data Uri: The data whose authority is being looked for.
Returns
boolean Returns true if the data string matches an authority listed in the filter.

hasDataPath

Added in API level 1
boolean hasDataPath (String data)

给定的数据路径是否包含在过滤器中? 请注意,如果过滤器不包含任何路径,则始终会返回false。

Parameters
data String: The data path to look for. This is without the scheme prefix.
Returns
boolean True if the data string matches a path listed in the filter.

hasDataScheme

Added in API level 1
boolean hasDataScheme (String scheme)

给定的数据方案是否包含在过滤器中? 请注意,如果过滤器不包含任何方案,则始终会返回false。

Parameters
scheme String: The data scheme to look for.
Returns
boolean True if the scheme is explicitly mentioned in the filter.

hasDataSchemeSpecificPart

Added in API level 19
boolean hasDataSchemeSpecificPart (String data)

过滤器中是否包含给定的数据方案特定部分? 请注意,如果过滤器不包含任何方案特定部分,则始终会返回false。

Parameters
data String: The scheme specific part that is being looked for.
Returns
boolean Returns true if the data string matches a scheme specific part listed in the filter.

hasDataType

Added in API level 1
boolean hasDataType (String type)

过滤器中是否包含给定的数据类型? 请注意,如果过滤器不包含任何类型,则将始终返回false。

Parameters
type String: The data type to look for.
Returns
boolean True if the type is explicitly mentioned in the filter.

match

Added in API level 1
int match (String action, 
                String type, 
                String scheme, 
                Uri data, 
                Set<String> categories, 
                String logTag)

测试此过滤器是否与给定的意图数据匹配。 如果Intent中的操作和类别与过滤器匹配,则匹配只会成功,如IntentFilter ; 在这种情况下,返回的匹配结果将按照matchData(String, String, Uri)

Parameters
action String: The intent action to match against (Intent.getAction).
type String: The intent type to match against (Intent.resolveType()).
scheme String: The data scheme to match against (Intent.getScheme()).
data Uri: The data URI to match against (Intent.getData()).
categories Set: The categories to match against (Intent.getCategories()).
logTag String: Tag to use in debugging messages.
Returns
int Returns either a valid match constant (a combination of MATCH_CATEGORY_MASK and MATCH_ADJUSTMENT_MASK), or one of the error codes NO_MATCH_TYPE if the type didn't match, NO_MATCH_DATA if the scheme/path didn't match, NO_MATCH_ACTION if the action didn't match, or NO_MATCH_CATEGORY if one or more categories didn't match.

也可以看看:

match

Added in API level 1
int match (ContentResolver resolver, 
                Intent intent, 
                boolean resolve, 
                String logTag)

测试这个过滤器是否符合给定的 意图

Parameters
resolver ContentResolver
intent Intent: The Intent to compare against.
resolve boolean: If true, the intent's type will be resolved by calling Intent.resolveType(); otherwise a simple match against Intent.type will be performed.
logTag String: Tag to use in debugging messages.
Returns
int Returns either a valid match constant (a combination of MATCH_CATEGORY_MASK and MATCH_ADJUSTMENT_MASK), or one of the error codes NO_MATCH_TYPE if the type didn't match, NO_MATCH_DATA if the scheme/path didn't match, NO_MATCH_ACTION if the action didn't match, or NO_MATCH_CATEGORY if one or more categories didn't match.

也可以看看:

matchAction

Added in API level 1
boolean matchAction (String action)

将此过滤器与Intent的操作匹配。 如果过滤器没有指定任何操作,则匹配将始终失败。

Parameters
action String: The desired action to look for.
Returns
boolean True if the action is listed in the filter.

matchCategories

Added in API level 1
String matchCategories (Set<String> categories)

将此过滤器与Intent的类别匹配。 意图中的每个类别都必须由过滤器指定; 如果有任何不在过滤器中,则匹配失败。

Parameters
categories Set: The categories included in the intent, as returned by Intent.getCategories().
Returns
String If all categories match (success), null; else the name of the first category that didn't match.

matchData

Added in API level 1
int matchData (String type, 
                String scheme, 
                Uri data)

将此过滤器与Intent的数据(类型,方案和路径)匹配。 如果过滤器没有指定任何类型并且没有指定任何方案/路径,则只有当意图不指定类型或数据时,匹配才会成功。 如果过滤器没有指定任何方案,它将隐含地将意图与没有方案,或方案“content:”或“file:”(基本上仅执行MIME类型匹配)相匹配。 如果过滤器没有指定任何MIME类型,则Intent也不能指定MIME类型。

请注意,为了与权限相匹配,还必须指定权限所在的基本方案。要与数据路径匹配,必须指定方案和权限。 如果过滤器没有指定它匹配的任何类型或方案,则它被认为是空的(任何授权或数据路径被忽略,就像它也是空的一样)。

注意:与正式的RFC定义不同,Android框架中的MIME类型,Uri方案和主机名匹配区分大小写。 因此,您应该始终使用小写字母编写这些元素,并对从Android以外收到的任何MIME类型或Uris进行规范化,以确保这些元素在提供给他们之前是小写字母。

Parameters
type String: The desired data type to look for, as returned by Intent.resolveType().
scheme String: The desired data scheme to look for, as returned by Intent.getScheme().
data Uri: The full data string to match against, as supplied in Intent.data.
Returns
int Returns either a valid match constant (a combination of MATCH_CATEGORY_MASK and MATCH_ADJUSTMENT_MASK), or one of the error codes NO_MATCH_TYPE if the type didn't match or NO_MATCH_DATA if the scheme/path didn't match.

也可以看看:

matchDataAuthority

Added in API level 1
int matchDataAuthority (Uri data)

将此意向过滤器与给定的Intent数据匹配。 这忽略了数据方案 - 与matchData(String, String, Uri)不同,权限将匹配,无论是否存在匹配方案。

Parameters
data Uri: The data whose authority is being looked for.
Returns
int Returns either MATCH_CATEGORY_HOST, MATCH_CATEGORY_PORT, NO_MATCH_DATA.

pathsIterator

Added in API level 1
Iterator<PatternMatcher> pathsIterator ()

在过滤器的数据路径上返回一个迭代器。

Returns
Iterator<PatternMatcher>

readFromXml

Added in API level 1
void readFromXml (XmlPullParser parser)

Parameters
parser XmlPullParser
Throws
XmlPullParserException
IOException

schemeSpecificPartsIterator

Added in API level 19
Iterator<PatternMatcher> schemeSpecificPartsIterator ()

将过滤器的数据方案特定部分返回一个迭代器。

Returns
Iterator<PatternMatcher>

schemesIterator

Added in API level 1
Iterator<String> schemesIterator ()

通过过滤器的数据方案返回一个迭代器。

Returns
Iterator<String>

setPriority

Added in API level 1
void setPriority (int priority)

修改此过滤器的优先级。 这只影响接收器滤波器。 活动过滤器的优先级以XML格式设置,不能以编程方式更改。 默认优先级为0.正值将在默认值之前,较低值将在其之后。 应用程序应使用大于SYSTEM_LOW_PRIORITY且小于SYSTEM_HIGH_PRIORITY

Parameters
priority int: The new priority value.

也可以看看:

typesIterator

Added in API level 1
Iterator<String> typesIterator ()

在过滤器的数据类型上返回一个迭代器。

Returns
Iterator<String>

writeToParcel

Added in API level 1
void writeToParcel (Parcel dest, 
                int flags)

将此对象平铺到一个包裹中。

Parameters
dest Parcel: The Parcel in which the object should be written.
flags int: Additional flags about how the object should be written. May be 0 or PARCELABLE_WRITE_RETURN_VALUE.

writeToXml

Added in API level 1
void writeToXml (XmlSerializer serializer)

将IntentFilter的内容作为XML流写入。

Parameters
serializer XmlSerializer
Throws
IOException

Hooray!