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 可以與 Intent 中的動作、類別和資料(透過其型別、方案和/或路徑)進行匹配。 它還包含一個「優先權」值,用來訂購多個匹配的濾波器。
IntentFilter 物件通常以 XML 作為套件 android.R.styleable#AndroidManifest AndroidManifest.xml 檔案的一部分,並使用 android.R.styleable#AndroidManifestIntentFilter intent-filter 標籤建立。
你可以篩選三種意圖特性:em action/em>、<em>data</em> 以及 <em>類別</em>。<>< 對於這些特徵,你可以提供多個可能的匹配值(分別透過 #addAction、 #addDataType、 #addCategory#addDataScheme#addDataSchemeSpecificPart#addDataAuthority#addDataPath, )。 對於動作,若未指定資料特徵,過濾器只會匹配不包含資料的意圖。
資料特徵本身分為三個屬性:類型、方案、權威與路徑。 所指定的任何內容必須與意圖內容相符。 如果你指定一個方案但沒有類型,只有沒有型別的意圖(例如 mailto:)才會匹配;A 內容:URI 永遠無法匹配,因為他們總是有由內容提供者提供的 MIME 類型。 指定一個沒有 scheme 的型別具有特殊意義:它會匹配一個沒有 URI 欄位的 Intent,或是 INTENT 有內容:或檔案:URI。 如果你兩者都不指定,那麼只有沒有資料或類型的意圖才會匹配。 要指定一個權威,你也必須指定它所關聯的一個或多個方案。 要指定一條路徑,你還必須同時指定一個或多個權威以及它所關聯的一個或多個方案。
<div class=“特殊參考”><h3>開發者指南</h3>
如需了解如何建立與解析意圖,請參閱《 意圖與意圖過濾器 》開發者指南。
</div>
<h3>濾鏡規則</h3>
比賽依據以下規則進行。 請注意,IntentFilter 要匹配意圖,必須成立三個條件:強動作/強><與強>類別</強>必須匹配,且資料(強<>資料型態</強><>資料方案+權威+路徑</強>資料方案(若指定)必須匹配(詳見#match(ContentResolver, Intent, boolean, String)資料欄位匹配細節)。<><
<強行動></強>匹配是指任一給定值與意圖動作相符;若過濾器指定無動作,則僅匹配不包含動作的意圖。
<強資料>型別</強> 匹配,若給定值中任一與意圖類型相符。 意圖類型是透過呼叫 Intent#resolveType來決定的。 MIME 子類型可在 Intent 和 IntentFilter 中使用通配符,讓「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>相符<<>>,濾波器中未提供任何方案特定部分。 意圖方案的特定部分是透過呼叫 Intent#getData 該 android.net.Uri#getSchemeSpecificPart URI 來決定的。
<em>請注意,特定方案的零件匹配是 <b>級大小寫區分</b>。</em>
<
>強資料權威</強>匹配:若給定值中任一值與意圖資料權威<>相符,且><濾波器中的某一資料方案與意圖相符,<<>>或未提供權威。 意圖權限是透過呼叫 Intent#getData 該 android.net.Uri#getAuthority URI 來決定的。
<em>請注意,這裡的權威匹配是 <b>大小寫區分</b>,與正式的 RFC 主機名稱不同!</em> 因此你應該始終使用小寫字母來表示你的權威。
<
>強資料路徑/強匹配:若給定值中任一值與意圖的資料路徑 <em>< 和/em> 相符,且過濾器中的方案與權限均與意圖相符,則>><<稱為強資料路徑</強>匹配,濾波器中未提供路徑。 意圖權限是透過呼叫 Intent#getData 該 android.net.Uri#getPath URI 來決定的。
<強類別/強匹配是指><><篩選器中給出的意圖匹配類別中所有類別。><> 篩選中不在意圖範圍內的額外類別不會導致配對失敗。 請注意,與動作不同,沒有類別的 IntentFilter 只會匹配到沒有任何類別的 Intent。
Java 文件 android.content.IntentFilter。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
建構函式
| 名稱 | Description |
|---|---|
| IntentFilter() |
新的空 IntentFilter。 |
| IntentFilter(IntentFilter) |
新 IntentFilter 包含現有過濾器的副本。 |
| IntentFilter(IntPtr, JniHandleOwnership) |
用於建立 JNI 物件受管理表示的建構器;由執行時呼叫。 |
| IntentFilter(String, String) |
新的 IntentFilter 可以匹配單一動作和資料型態。 |
| IntentFilter(String) |
新的 IntentFilter 能匹配一個沒有資料的單一動作。 |
欄位
| 名稱 | Description |
|---|---|
| SystemHighPriority |
已淘汰.
系統高優先接收器放置的濾波 |
| SystemLowPriority |
已淘汰.
系統低優先權接收器放置的濾波 |
屬性
| 名稱 | Description |
|---|---|
| Class |
回傳此 |
| Creator | |
| Handle |
底層 Android 實例的帳號。 (繼承來源 Object) |
| JniIdentityHashCode |
結構化描述待匹配的意圖值。 (繼承來源 Object) |
| JniPeerMembers |
結構化描述待匹配的意圖值。 |
| PeerReference |
結構化描述待匹配的意圖值。 (繼承來源 Object) |
| Priority |
回傳這個過濾器的優先權。 -或者- 修改這個過濾器的優先順序。 |
| ThresholdClass |
此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。 |
| ThresholdType |
此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。 |
方法
| 名稱 | Description |
|---|---|
| ActionsIterator() |
回傳一個迭代器,檢視過濾器的動作。 |
| AddAction(String) |
新增一個意圖動作來配對。 |
| AddCategory(String) |
新增一個意圖類別來對戰。 |
| AddDataAuthority(String, String) |
新增一個意圖資料權限來比對。 |
| AddDataPath(String, Pattern) |
新增一條意圖資料路徑來比對。 |
| AddDataScheme(String) |
新增一個新的意圖資料方案來比對。 |
| AddDataSchemeSpecificPart(String, Pattern) |
新增一個意圖資料「方案特定部分」來比對。 |
| AddDataType(String) |
新增一個新的意圖資料類型來比對。 |
| AddUriRelativeFilterGroup(UriRelativeFilterGroup) |
新增一個 URI 相對濾波器群組,以與意圖資料相符。 |
| AsPredicate() |
回傳 a |
| AsPredicateWithTypeResolution(ContentResolver) |
回傳 a |
| AuthoritiesIterator() |
回傳一個迭代器,對過濾器的資料權限。 |
| CategoriesIterator() |
回傳過濾器類別的迭代器。 |
| ClearUriRelativeFilterGroups() |
移除意圖過濾器中所有現有的 URI 相對濾波器群組。 |
| Clone() |
建立並回傳此物件的副本。 (繼承來源 Object) |
| CountActions() |
回傳篩選器中的動作數量。 |
| CountCategories() |
回傳篩選器中的分類數量。 |
| CountDataAuthorities() |
在篩選器中回傳資料權威的數量。 |
| CountDataPaths() |
回傳濾波器中的資料路徑數量。 |
| CountDataSchemes() |
回傳篩選器中的資料方案數量。 |
| CountDataSchemeSpecificParts() |
在篩選器中回傳資料方案特定部分的數量。 |
| CountDataTypes() |
回傳篩選器中的資料類型數量。 |
| CountUriRelativeFilterGroups() |
在意圖過濾器中回傳 URI 相對濾波器群組的數量。 |
| Create(String, String) |
建立一個新的 IntentFilter 實例,設定指定的動作和 MIME 類型,並且你知道 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>或回傳 em。 |
| HasCategory(String) |
該分類是否包含在篩選條件中? |
| HasDataAuthority(Uri) |
該資料權威是否包含在篩選中? 請注意,如果過濾器不包含任何權威,false 將<永遠< em>或 em> 會回傳。 |
| HasDataPath(String) |
給定的資料路徑是否包含在過濾器中? 請注意,如果濾波器不包含任何路徑,false 將<永遠 em>< 或回傳 em>。 |
| HasDataScheme(String) |
給定的資料方案是否包含在篩選器中? 注意,若濾波器不包含任何 scheme,false 將<永遠為 em></>em 回傳。 |
| HasDataSchemeSpecificPart(String) |
該資料方案是否包含在篩選器中? 請注意,如果濾波器不包含任何特定方案的部分,false 將<永遠< em>或>回傳 em。 |
| HasDataType(String) |
這個給定的資料型別是否包含在篩選器中? 請注意,如果濾波器不包含任何型別,false 將<永遠< em>或> em 會回傳。 |
| JavaFinalize() |
當垃圾回收判定該物件不再有相關參考時,由垃圾回收器呼叫。 (繼承來源 Object) |
| Match(ContentResolver, Intent, Boolean, String) |
測試這個濾波器是否符合給定 <的 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>中斷</em> 來喚醒。 (繼承來源 Object) |
| Wait(Int64, Int32) |
會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。 (繼承來源 Object) |
| Wait(Int64) |
會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。 (繼承來源 Object) |
| WriteToParcel(Parcel, ParcelableWriteFlags) |
把這個物體壓扁成一個包裹。 |
| WriteToXml(IXmlSerializer) |
將 IntentFilter 的內容寫成 XML 串流。 |
明確介面實作
| 名稱 | Description |
|---|---|
| IJavaPeerable.Disposed() |
結構化描述待匹配的意圖值。 (繼承來源 Object) |
| IJavaPeerable.DisposeUnlessReferenced() |
結構化描述待匹配的意圖值。 (繼承來源 Object) |
| IJavaPeerable.Finalized() |
結構化描述待匹配的意圖值。 (繼承來源 Object) |
| IJavaPeerable.JniManagedPeerState |
結構化描述待匹配的意圖值。 (繼承來源 Object) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
結構化描述待匹配的意圖值。 (繼承來源 Object) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
結構化描述待匹配的意圖值。 (繼承來源 Object) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
結構化描述待匹配的意圖值。 (繼承來源 Object) |
擴充方法
| 名稱 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
結構化描述待匹配的意圖值。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |