IntentFilter 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
要匹配的意向值的结构化说明。
[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 对象通常使用android.R.styleable#AndroidManifestIntentFilter intent-filter标记在 XML 中创建,作为包android.R.styleable#AndroidManifest AndroidManifest.xml文件的一部分。
可以筛选三个意向特征:em action/em>、<em>data</em> 和 <em>categories</em>。<>< 对于每个特征,可以分别提供多个可能的匹配值(通过#addAction、、#addDataType、#addDataScheme#addDataSchemeSpecificPart、#addDataAuthority、#addDataPath和#addCategory)。 对于操作,如果未指定任何数据特征,则筛选器将仅匹配不包含数据的意向。
数据特征本身分为三个属性:类型、方案、权威和路径。 指定的任何内容都必须与意向的内容匹配。 如果指定方案但没有类型,则只有没有类型(如 mailto:)的意向才会匹配;内容:URI 永远不会匹配,因为它们始终具有内容提供程序提供的 MIME 类型。 指定没有方案的类型具有一些特殊含义:它将匹配没有 URI 字段的意向,或者包含内容或文件:URI 的意向。 如果两者均未指定,则只有没有数据或类型的意向匹配。 若要指定颁发机构,还必须指定与其关联的一个或多个方案。 若要指定路径,还必须同时指定一个或多个颁发机构及其关联的一个或多个方案。
<div class=“special reference”><h3>Developer Guides</h3>
有关如何创建和解决意向的信息,请阅读 意向和意向筛选器 开发人员指南。
</Div>
<h3>筛选器规则</h3>
匹配基于以下规则。 请注意,对于 IntentFilter 匹配意向,必须保留三个条件:强操作/强>和<强>类别</>强必须匹配,并且数据(<强>数据类型</强>和<强>数据方案+权限+路径</强>)必须匹配(请参阅#match(ContentResolver, Intent, boolean, String)有关数据字段匹配方式的更多详细信息)。<><
<如果任一给定值与意向操作匹配,则强>操作</强> 匹配;如果筛选器未指定任何操作,则只会匹配不包含操作的意向。
<如果任何给定值与意向类型匹配,则强>数据类型</强> 匹配。 意向类型通过调用 Intent#resolveType确定。 通配符可用于意向和 IntentFilter 中的 MIME 子类型,以便类型“audio/*”与“audio/mpeg”、“audio/aiff”、“audio/*”等匹配。 <em>请注意,此处匹配的 MIME 类型区分<<大小>写/b>,与正式 RFC MIME 类型不同!</em> 因此,应始终对 MIME 类型使用小写字母。
<如果任何给定值与意向数据方案匹配,则强>数据方案</强> 匹配。 意向方案通过调用 Intent#getData 和 android.net.Uri#getScheme 基于该 URI 来确定。
<em>请注意,此处匹配的方案区分<<大小>写/b>,与正式 RFC 方案不同!</em> 应始终对方案使用小写字母。
<如果任何给定值与意向的数据方案特定部分 em 和/em> 中的某个数据方案匹配,则强>数据方案特定部件<</强>匹配项与筛选器中的意向、<em>或</em> 未在筛选器中提供任何方案特定部分匹配。<> 特定意向方案部分由调用 Intent#getData 和 android.net.Uri#getSchemeSpecificPart 基于该 URI 确定。
<em>请注意,方案特定的部分匹配是 <b>区分大小写</b>。</em>
<如果任何给定值与意向的数据颁发机构 em 和/em> 中的某个数据方案匹配,则强>数据颁发机构/强>匹配,并且筛选器中未提供引文,<则>强数据颁发机构</<强>匹配。<>< 意向颁发机构通过调用 Intent#getData 和 android.net.Uri#getAuthority 基于该 URI 来确定。
<em>请注意,此处匹配的颁发机构区分<<>大小写/b>,与正式 RFC 主机名不同!</em> 因此,应始终为颁发机构使用小写字母。
<如果任何给定值匹配意向的数据路径 em 和/em> 筛选器中的方案和颁发机构都与意向匹配,则强>数据路径</强>匹配,<em>或</em> 未在筛选器中提供路径。<>< 意向颁发机构通过调用 Intent#getData 和 android.net.Uri#getPath 基于该 URI 来确定。
<如果意向匹配类别中给定的类别的所有/em,则强>类别</强>匹配><。>< 不在意向中的筛选器中的额外类别将导致匹配失败。 请注意,与操作不同,没有类别的 IntentFilter 将仅匹配不包含任何类别的意向。
Java文档android.content.IntentFilter。
本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。
构造函数
| 名称 | 说明 |
|---|---|
| IntentFilter() |
新建空 IntentFilter。 |
| IntentFilter(IntentFilter) |
包含现有筛选器的副本的新 IntentFilter。 |
| IntentFilter(IntPtr, JniHandleOwnership) |
创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。 |
| IntentFilter(String, String) |
与单个操作和数据类型匹配的新 IntentFilter。 |
| IntentFilter(String) |
与没有数据的单个操作匹配的新 IntentFilter。 |
字段
| 名称 | 说明 |
|---|---|
| SystemHighPriority |
已过时.
放置系统高优先级接收器的筛选器 |
| SystemLowPriority |
已过时.
放置系统低优先级接收器的筛选器 |
属性
| 名称 | 说明 |
|---|---|
| Class |
返回此 |
| 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) |
添加新的意向数据类型以匹配。 |
| AddUriRelativeFilterGroup(UriRelativeFilterGroup) |
添加新的 URI 相对筛选器组,使其与意向数据匹配。 |
| AsPredicate() |
返回一个 |
| AsPredicateWithTypeResolution(ContentResolver) |
返回一个 |
| AuthoritiesIterator() |
返回筛选器的数据颁发机构上的迭代器。 |
| CategoriesIterator() |
返回筛选器类别的迭代器。 |
| ClearUriRelativeFilterGroups() |
删除意向筛选器中的所有现有 URI 相对筛选器组。 |
| Clone() |
创建并返回此对象的副本。 (继承自 Object) |
| CountActions() |
返回筛选器中的操作数。 |
| CountCategories() |
返回筛选器中的类别数。 |
| CountDataAuthorities() |
返回筛选器中的数据颁发机构数。 |
| CountDataPaths() |
返回筛选器中的数据路径数。 |
| CountDataSchemes() |
返回筛选器中的数据方案数。 |
| CountDataSchemeSpecificParts() |
返回筛选器中特定数据方案部件的数目。 |
| CountDataTypes() |
返回筛选器中的数据类型数。 |
| CountUriRelativeFilterGroups() |
返回意向筛选器中的 URI 相对筛选器组数。 |
| 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) |
| GetUriRelativeFilterGroup(Int32) |
返回意向筛选器中的 URI 相对筛选器组。 |
| HasAction(String) |
给定操作是否包含在筛选器中? 请注意,如果筛选器不包含任何操作,则 false>将<始终<返回/em>。 |
| HasCategory(String) |
给定的类别是否包含在筛选器中? |
| HasDataAuthority(Uri) |
给定的数据颁发机构是否包含在筛选器中? 请注意,如果筛选器不包含任何引文,则 false 将<>始终<返回/em>。 |
| HasDataPath(String) |
给定的数据路径是否包含在筛选器中? 请注意,如果筛选器不包含任何路径,则返回>false 将<始终<返回/em>。 |
| HasDataScheme(String) |
给定的数据方案是否包含在筛选器中? 请注意,如果筛选器不包含任何方案,则返回>false 将<始终<返回/em>。 |
| HasDataSchemeSpecificPart(String) |
给定的数据方案是否包含在筛选器中? 请注意,如果筛选器不包含任何方案特定部分,则返回>false 将<始终<返回/em>。 |
| HasDataType(String) |
给定的数据类型是否包含在筛选器中? 请注意,如果筛选器不包含任何类型,则返回>false 将<始终<返回/em>。 |
| 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, Int32) |
使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted</em>>,或直到经过一定数量的实时。 (继承自 Object) |
| Wait(Int64) |
使当前线程等待直到唤醒,通常是通过 <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) |
扩展方法
| 名称 | 说明 |
|---|---|
| GetJniTypeName(IJavaPeerable) |
获取实例 |
| JavaAs<TResult>(IJavaPeerable) |
尝试强制 |
| JavaCast<TResult>(IJavaObject) |
执行 Android 运行时检查的类型转换。 |
| JavaCast<TResult>(IJavaObject) |
要匹配的意向值的结构化说明。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
尝试强制 |