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
、 #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#getData
和 android.net.Uri#getScheme
来确定的。 <em>请注意,此处匹配的方案是 <b>区分<大小写/b>,这与正式 RFC 方案不同!</em> 因此,应始终对方案使用小写字母。
<强>数据方案特定部分</强> 匹配如果任何给定值匹配意向的数据方案特定部分 <em>和</em> 筛选器中的其中一个数据方案匹配意向, <则>em 或</em> 未在筛选器中提供方案特定部分。 意向方案特定部分是通过在该 URI 上调用 Intent#getData
和 android.net.Uri#getSchemeSpecificPart
来确定的。 <em>请注意,方案特定的部件匹配是 <b>区分大小写</b>。</Em>
<强>数据机构</强> 匹配,如果任何给定值匹配意向的数据颁发机构 <em>和</em> 筛选器中的其中一个数据方案与意向匹配, <则>em 或</em> 未在筛选器中提供授权。 意向颁发机构是通过在该 URI 上调用 Intent#getData
和 android.net.Uri#getAuthority
来确定的。 <em>请注意,此处匹配的颁发机构 b <>区分大小<写/b>,这与正式 RFC 主机名不同!</em> 因此,应始终使用小写字母表示你的权威。
<强>数据路径</强> 匹配如果任何给定值匹配意向的数据路径 <em>和</em> 筛选器中的方案和颁发机构都已匹配意向, <则>em 或</em> 未在筛选器中提供路径。 意向颁发机构是通过在该 URI 上调用 Intent#getData
和 android.net.Uri#getPath
来确定的。
<强>类别</强> 匹配(如果 <意向>类别中的所有<类别> 都与筛选器中给定的类别匹配)。 筛选器中不在意向中的额外类别不会导致匹配失败。 请注意,与 操作不同,没有类别的 IntentFilter 将仅匹配没有任何类别的意向。
的 android.content.IntentFilter
Java 文档。
此页面的某些部分是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的条款使用。
构造函数
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 将<><>始终返回。 |
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) |
要匹配的意向值的结构化说明。 |