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
。 在 Intent 和 IntentFilter 中,MIME 子類型可以使用通配符,讓 “audio/*” 類型符合 “audio/mpeg”、“audio/aiff”、“audio/*” 等。 <em>請注意,這裡的MIME類型比對 b>< 區分大小寫</b>,與正式 RFC MIME 類型不同!</em> 因此,您應該一律針對 MIME 類型使用小寫字母。
<如果任何指定值符合意圖數據的配置,則強>式數據配置</強> 式相符。 意圖配置是由呼叫 Intent#getData
和 android.net.Uri#getScheme
在該 URI 上決定。 <em>請注意,這裡的配置比對 b>< 區分大小寫</b>,不同於正式 RFC 配置!</em> 因此,您應該一律針對配置使用小寫字母。
<如果任何指定的值符合意圖的數據配置特定部分em和/em>篩選中的其中一個數據配置,則強>數據配置特定<部分</強>比對符合意圖,<em>或</em> 未在篩選中提供配置特定部分。<> 意圖配置特定部分取決於呼叫 Intent#getData
和 android.net.Uri#getSchemeSpecificPart
在該 URI 上。 <em>請注意,配置特定部分比對是 <b>區分大小寫</b>。</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
來決定。
<如果 <em> 在篩選中指定意圖比對類別中所有< / em> 的類別,則強>類別< / 強>比對。 不在意圖中的篩選中,額外的類別不會造成相符項目失敗。 請注意,與動作不同,沒有類別的 IntentFilter 只會符合沒有任何類別的意圖。
的 android.content.IntentFilter
Java 檔。
此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。
建構函式
IntentFilter() |
新的空白 IntentFilter。 |
IntentFilter(IntentFilter) |
包含現有篩選複本的新 IntentFilter。 |
IntentFilter(IntPtr, JniHandleOwnership) |
建立 JNI 物件的 Managed 表示法時使用的建構函式;由運行時間呼叫。 |
IntentFilter(String) |
符合沒有數據之單一動作的新 IntentFilter。 |
IntentFilter(String, String) |
符合單一動作和數據類型的新 IntentFilter。 |
欄位
SystemHighPriority |
已淘汰.
放置系統高優先順序接收者的篩選 |
SystemLowPriority |
已淘汰.
放置系統低優先順序接收者的篩選 |
屬性
Class |
傳回這個 |
Creator |
要比對之意圖值的結構化描述。 |
Handle |
基礎Android實例的句柄。 (繼承來源 Object) |
JniIdentityHashCode |
要比對之意圖值的結構化描述。 (繼承來源 Object) |
JniPeerMembers |
要比對之意圖值的結構化描述。 |
PeerReference |
要比對之意圖值的結構化描述。 (繼承來源 Object) |
Priority |
傳回此篩選的優先順序。 -或- 修改此篩選的優先順序。 |
ThresholdClass |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 |
ThresholdType |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 |
方法
ActionsIterator() |
傳回篩選動作的反覆運算器。 |
AddAction(String) |
新增要比對的意圖動作。 |
AddCategory(String) |
新增要比對的新意圖類別目錄。 |
AddDataAuthority(String, String) |
新增要比對的新意圖數據授權單位。 |
AddDataPath(String, Pattern) |
新增要比對的新意圖數據路徑。 |
AddDataScheme(String) |
新增要比對的新意圖數據配置。 |
AddDataSchemeSpecificPart(String, Pattern) |
新增意圖數據「配置特定部分」,使其符合。 |
AddDataType(String) |
新增要比對的新 Intent 資料類型。 |
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 會<>傳回 always</em>。 |
HasCategory(String) |
篩選中包含指定的類別嗎? |
HasDataAuthority(Uri) |
指定的數據授權單位是否包含在篩選中? 請注意,如果篩選不包含任何授權單位,false 會<>傳回 always</em>。 |
HasDataPath(String) |
篩選中是否包含指定的數據路徑? 請注意,如果篩選不包含任何路徑,則會傳回 false 將<永遠傳回 em></em>。 |
HasDataScheme(String) |
指定的數據設定是否包含在篩選中? 請注意,如果篩選不包含任何配置,false 會<傳回 always></em>。 |
HasDataSchemeSpecificPart(String) |
指定的數據設定是否包含在篩選中? 請注意,如果篩選不包含任何配置特定部分,false 會<>傳回always</em>。 |
HasDataType(String) |
篩選中是否包含指定的數據類型? 請注意,如果篩選不包含任何類型,false 會<傳回 always></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 <notified/em>或<em>interrupted</em> 來喚醒它。<> (繼承來源 Object) |
Wait(Int64) |
讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。 (繼承來源 Object) |
Wait(Int64, Int32) |
讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。 (繼承來源 Object) |
WriteToParcel(Parcel, ParcelableWriteFlags) |
將中的這個物件扁平化為 Parcel。 |
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) |
要比對之意圖值的結構化描述。 |