IntentFilter 類別

定義

結構化描述待匹配的意圖值。

[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 可以與 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#getDataandroid.net.Uri#getScheme URI 來決定的。 <em>注意這裡的方案匹配是 <b>大小寫區分</b>,與正式的 RFC 方案不同!</em> 因此,你的方案應該始終使用小寫字母。

<強資料>方案特定部分</強>匹配:若給定值中任一與意圖資料方案的特定部分 <em>< 和/em>相符<<>>,濾波器中未提供任何方案特定部分。 意圖方案的特定部分是透過呼叫 Intent#getDataandroid.net.Uri#getSchemeSpecificPart URI 來決定的。 <em>請注意,特定方案的零件匹配是 <b>級大小寫區分</b>。</em>

< >強資料權威</強>匹配:若給定值中任一值與意圖資料權威<>相符,且><濾波器中的某一資料方案與意圖相符,<<>>或未提供權威。 意圖權限是透過呼叫 Intent#getDataandroid.net.Uri#getAuthority URI 來決定的。 <em>請注意,這裡的權威匹配是 <b>大小寫區分</b>,與正式的 RFC 主機名稱不同!</em> 因此你應該始終使用小寫字母來表示你的權威。

< >強資料路徑/強匹配:若給定值中任一值與意圖的資料路徑 <em>< 和/em> 相符,且過濾器中的方案與權限均與意圖相符,則>><<稱為強資料路徑</強>匹配,濾波器中未提供路徑。 意圖權限是透過呼叫 Intent#getDataandroid.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
已淘汰.

系統高優先接收器放置的濾波 #setPriority 值;也就是應在應用程式碼之前執行的接收器。

SystemLowPriority
已淘汰.

系統低優先權接收器放置的濾波 #setPriority 器值;也就是應在應用程式程式碼後執行的接收器。

屬性

名稱 Description
Class

回傳此 Object的執行時類別。

(繼承來源 Object)
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 Predicate ,測試這個濾波器是否符合給定 <的 var>意圖</變體>。

AsPredicateWithTypeResolution(ContentResolver)

回傳 a Predicate ,測試這個濾波器是否符合給定 <的 var>意圖</變體>。

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)

取得實例 self類型的 JNI 名稱。

JavaAs<TResult>(IJavaPeerable)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

JavaCast<TResult>(IJavaObject)

執行 Android 執行時檢查型別轉換。

JavaCast<TResult>(IJavaObject)

結構化描述待匹配的意圖值。

TryJavaCast<TResult>(IJavaPeerable, TResult)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

適用於