Share via


IntentFilter 类

定义

要匹配的意向值的结构化说明。

[Android.Runtime.Register("android/content/IntentFilter", DoNotGenerateAcw=true)]
public class IntentFilter : Java.Lang.Object, Android.OS.IParcelable, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("android/content/IntentFilter", DoNotGenerateAcw=true)>]
type IntentFilter = class
    inherit Object
    interface IParcelable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
继承
IntentFilter
属性
实现

注解

要匹配的意向值的结构化说明。 IntentFilter 可以通过意向中的类型、方案和/或路径) 来匹配操作、类别和数据 (。 它还包含用于对多个匹配筛选器进行排序的“优先级”值。

IntentFilter 对象通常使用android.R.styleable#AndroidManifestIntentFilter intent-filter标记在 XML 中创建,作为包文件的android.R.styleable#AndroidManifest AndroidManifest.xml一部分。

可以筛选三个意向特征:em action/em>、<em>data</em> 和 <em>categories</em>。<>< 对于其中每个特征,可以分别通过 #addAction、、#addDataType#addDataAuthority#addDataPath#addDataScheme#addDataSchemeSpecificPart#addCategory) 提供多个可能的匹配值 (。 对于操作,如果未指定数据特征,则筛选器将仅匹配不包含数据的意向。

数据特征本身分为三个属性:类型、方案、权限和路径。 指定的任何内容都必须与意向的内容匹配。 如果指定方案但不指定类型,则只有没有类型 ((如 mailto:) )的意向匹配;内容:URI 永远不会匹配,因为它们始终具有由其内容提供程序提供的 MIME 类型。 指定没有方案的类型具有一些特殊含义:它将匹配没有 URI 字段的意向,或具有内容或文件 URI 的意向。 如果两者均未指定,则只有没有数据或类型的意向匹配。 若要指定颁发机构,还必须指定与之关联的一个或多个方案。 若要指定路径,还必须指定一个或多个颁发机构及其关联的一个或多个方案。

<div class=“special reference”><h3>开发人员指南</h3>

有关如何创建和解析意向的信息,请阅读 意向和意向筛选器 开发人员指南。

</Div>

<h3>筛选规则</h3>

匹配项基于以下规则。 请注意,要使 IntentFilter 匹配意向,必须满足三个条件:强操作/强>和<强>类别</强>必须匹配,并且数据 (<强>数据类型</强>和<强>数据方案+authority+path</strong>(如果指定) 必须匹配 (有关数据字段如何匹配) 的更多详细信息,请参阅 #match(ContentResolver, Intent, boolean, String) 。<><

<如果任何给定值与意向操作匹配,则强>操作</强> 匹配;如果筛选器未指定任何操作,则仅匹配不包含操作的意向。

<如果任何给定值与意向类型匹配,则强>数据类型</强> 匹配。 意向类型通过调用 Intent#resolveType确定。 通配符可用于 Intent 和 IntentFilter 中的 MIME 子类型,以便类型“audio/*”与“audio/mpeg”、“audio/aiff”、“audio/*”等匹配。 <em>请注意,此处匹配的 MIME 类型是 <b>区分<大小写/b>,这与正式 RFC MIME 类型不同!</em> 因此,应始终对 MIME 类型使用小写字母。

<如果任何给定值与意向数据的方案匹配,则强>数据方案</强> 匹配。 意向方案是通过在该 URI 上调用 Intent#getDataandroid.net.Uri#getScheme 来确定的。 <em>请注意,此处匹配的方案是 <b>区分<大小写/b>,这与正式 RFC 方案不同!</em> 因此,应始终对方案使用小写字母。

<强>数据方案特定部分</强> 匹配如果任何给定值匹配意向的数据方案特定部分 <em>和</em> 筛选器中的其中一个数据方案匹配意向, <则>em 或</em> 未在筛选器中提供方案特定部分。 意向方案特定部分是通过在该 URI 上调用 Intent#getDataandroid.net.Uri#getSchemeSpecificPart 来确定的。 <em>请注意,方案特定的部件匹配是 <b>区分大小写</b>。</Em>

<强>数据机构</强> 匹配,如果任何给定值匹配意向的数据颁发机构 <em>和</em> 筛选器中的其中一个数据方案与意向匹配, <则>em 或</em> 未在筛选器中提供授权。 意向颁发机构是通过在该 URI 上调用 Intent#getDataandroid.net.Uri#getAuthority 来确定的。 <em>请注意,此处匹配的颁发机构 b <>区分大小<写/b>,这与正式 RFC 主机名不同!</em> 因此,应始终使用小写字母表示你的权威。

<强>数据路径</强> 匹配如果任何给定值匹配意向的数据路径 <em>和</em> 筛选器中的方案和颁发机构都已匹配意向, <则>em 或</em> 未在筛选器中提供路径。 意向颁发机构是通过在该 URI 上调用 Intent#getDataandroid.net.Uri#getPath 来确定的。

<强>类别</强> 匹配(如果 <意向>类别中的所有<类别> 都与筛选器中给定的类别匹配)。 筛选器中不在意向中的额外类别不会导致匹配失败。 请注意,与 操作不同,没有类别的 IntentFilter 将仅匹配没有任何类别的意向。

android.content.IntentFilterJava 文档。

此页面的某些部分是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的条款使用。

构造函数

IntentFilter()

新的空 IntentFilter。

IntentFilter(IntentFilter)

包含现有筛选器副本的新 IntentFilter。

IntentFilter(IntPtr, JniHandleOwnership)

创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。

IntentFilter(String)

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

IntentFilter(String, String)

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

字段

SystemHighPriority
已过时.

放置系统高优先级接收器的筛选器 #setPriority 值;即,应在应用程序代码之前执行的接收器。

SystemLowPriority
已过时.

放置系统低优先级接收器的筛选器 #setPriority 值;即应在应用程序代码之后执行的接收器。

属性

Class

返回此 Object的运行时类。

(继承自 Object)
Creator

要匹配的意向值的结构化说明。

Handle

基础 Android 实例的句柄。

(继承自 Object)
JniIdentityHashCode

要匹配的意向值的结构化说明。

(继承自 Object)
JniPeerMembers

要匹配的意向值的结构化说明。

PeerReference

要匹配的意向值的结构化说明。

(继承自 Object)
Priority

返回此筛选器的优先级。 - 或 - 修改此筛选器的优先级。

ThresholdClass

此 API 支持 Mono for Android 基础结构,不应直接从代码使用。

ThresholdType

此 API 支持 Mono for Android 基础结构,不应直接从代码使用。

方法

ActionsIterator()

返回筛选器操作的迭代器。

AddAction(String)

添加要匹配的新意向操作。

AddCategory(String)

添加要匹配的新意向类别。

AddDataAuthority(String, String)

添加新的意向数据机构以匹配。

AddDataPath(String, Pattern)

添加要匹配的新意向数据路径。

AddDataScheme(String)

添加要匹配的新意向数据方案。

AddDataSchemeSpecificPart(String, Pattern)

添加新的意向数据“方案特定部分”以匹配。

AddDataType(String)

添加新的意向数据类型以匹配。

AsPredicate()

返回一个 , Predicate 它测试此筛选器是否与给定 <的 var>意向</var> 匹配。

AsPredicateWithTypeResolution(ContentResolver)

返回一个 , Predicate 它测试此筛选器是否与给定 <的 var>意向</var> 匹配。

AuthoritiesIterator()

返回一个迭代器,该迭代器覆盖筛选器的数据颁发机构。

CategoriesIterator()

返回筛选器类别的迭代器。

Clone()

创建并返回此对象的副本。

(继承自 Object)
CountActions()

返回筛选器中的操作数。

CountCategories()

返回筛选器中的类别数。

CountDataAuthorities()

返回筛选器中数据颁发机构的数量。

CountDataPaths()

返回筛选器中的数据路径数。

CountDataSchemes()

返回筛选器中的数据方案数。

CountDataSchemeSpecificParts()

返回筛选器中特定于数据方案部分的数目。

CountDataTypes()

返回筛选器中的数据类型数。

Create(String, String)

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

DescribeContents()

描述此 Parcelable 封送表示形式中包含的特殊对象类型。

Dispose()

要匹配的意向值的结构化说明。

(继承自 Object)
Dispose(Boolean)

要匹配的意向值的结构化说明。

(继承自 Object)
Dump(IPrinter, String)

要匹配的意向值的结构化说明。

Equals(Object)

指示其他某个对象是否“等于”此对象。

(继承自 Object)
GetAction(Int32)

返回筛选器中的操作。

GetCategory(Int32)

返回筛选器中的类别。

GetDataAuthority(Int32)

在筛选器中返回数据颁发机构。

GetDataPath(Int32)

在筛选器中返回数据路径。

GetDataScheme(Int32)

在筛选器中返回数据方案。

GetDataSchemeSpecificPart(Int32)

返回筛选器中的数据方案特定部分。

GetDataType(Int32)

返回筛选器中的数据类型。

GetHashCode()

返回对象的哈希代码值。

(继承自 Object)
HasAction(String)

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

HasCategory(String)

给定类别是否包含在筛选器中?

HasDataAuthority(Uri)

给定的数据颁发机构是否包含在筛选器中? 请注意,如果筛选器不包含任何颁发机构,则 false 将<>始终<>返回。

HasDataPath(String)

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

HasDataScheme(String)

给定的数据方案是否包含在筛选器中? 请注意,如果筛选器不包含任何方案,则 false 将<><>始终返回。

HasDataSchemeSpecificPart(String)

给定的数据方案特定部分是否包含在筛选器中? 请注意,如果筛选器不包含任何特定于方案的部分,则 false 将<>始终<>返回。

HasDataType(String)

给定的数据类型是否包含在筛选器中? 请注意,如果筛选器不包含任何类型,则始终返回 <><> false。

JavaFinalize()

当垃圾回收确定不再引用对象时,由对象上的垃圾回收器调用。

(继承自 Object)
Match(ContentResolver, Intent, Boolean, String)

测试此筛选器是否与给定 <的 var>意向</var> 匹配。

Match(String, String, String, Uri, ICollection<String>, String)

测试此筛选器是否与给定意向数据匹配。

MatchAction(String)

将此筛选器与意向的操作匹配。

MatchCategories(ICollection<String>)

将此筛选器与意向的类别匹配。

MatchData(String, String, Uri)

将此筛选器与意向的数据 (类型、方案和路径) 匹配。

MatchDataAuthority(Uri)

将此意向筛选器与给定的意向数据匹配。

Notify()

唤醒正在等待此对象的监视器的单个线程。

(继承自 Object)
NotifyAll()

唤醒正在等待此对象的监视器的所有线程。

(继承自 Object)
PathsIterator()

返回筛选器数据路径上的迭代器。

ReadFromXml(XmlReader)

要匹配的意向值的结构化说明。

SchemesIterator()

返回筛选器数据方案的迭代器。

SchemeSpecificPartsIterator()

返回针对筛选器的数据方案特定部分的迭代器。

SetHandle(IntPtr, JniHandleOwnership)

设置 Handle 属性。

(继承自 Object)
ToArray<T>()

要匹配的意向值的结构化说明。

(继承自 Object)
ToString()

返回对象的字符串表示形式。

(继承自 Object)
TypesIterator()

返回筛选器数据类型的迭代器。

UnregisterFromRuntime()

要匹配的意向值的结构化说明。

(继承自 Object)
Wait()

导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>。<>

(继承自 Object)
Wait(Int64)

导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>,或直到经过一定数量的实时。<>

(继承自 Object)
Wait(Int64, Int32)

导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>,或直到经过一定数量的实时。<>

(继承自 Object)
WriteToParcel(Parcel, ParcelableWriteFlags)

将此对象平展为包裹。

WriteToXml(IXmlSerializer)

将 IntentFilter 的内容编写为 XML 流。

显式接口实现

IJavaPeerable.Disposed()

要匹配的意向值的结构化说明。

(继承自 Object)
IJavaPeerable.DisposeUnlessReferenced()

要匹配的意向值的结构化说明。

(继承自 Object)
IJavaPeerable.Finalized()

要匹配的意向值的结构化说明。

(继承自 Object)
IJavaPeerable.JniManagedPeerState

要匹配的意向值的结构化说明。

(继承自 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

要匹配的意向值的结构化说明。

(继承自 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

要匹配的意向值的结构化说明。

(继承自 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

要匹配的意向值的结构化说明。

(继承自 Object)

扩展方法

JavaCast<TResult>(IJavaObject)

执行 Android 运行时检查的类型转换。

JavaCast<TResult>(IJavaObject)

要匹配的意向值的结构化说明。

GetJniTypeName(IJavaPeerable)

要匹配的意向值的结构化说明。

适用于