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 将仅匹配不包含任何类别的意向。
适用于 . 的 android.content.IntentFilter
Java 文档
本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。
构造函数
IntentFilter() |
新建空 IntentFilter。 |
IntentFilter(IntentFilter) |
包含现有筛选器的副本的新 IntentFilter。 |
IntentFilter(IntPtr, JniHandleOwnership) |
创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。 |
IntentFilter(String) |
与没有数据的单个操作匹配的新 IntentFilter。 |
IntentFilter(String, 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) |
添加新的意向数据类型以与其匹配。 |
AsPredicate() |
返回一个 |
AsPredicateWithTypeResolution(ContentResolver) |
返回一个 |
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>将<始终<返回/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) |
使当前线程等待直到唤醒,通常是通过 <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) |
要匹配的意向值的结构化说明。 |