- 語法:
- 如果資料標記是
<intent-filter>的直接子項:
<data android:scheme="string" android:host="string" android:port="string" android:path="string" android:pathPattern="string" android:pathPrefix="string" android:pathSuffix="string" android:pathAdvancedPattern="string" android:mimeType="string" />
如果資料標記是<uri-relative-filter-group>的直接子項:
<data android:path="string" android:pathPattern="string" android:pathPrefix="string" android:pathSuffix="string" android:pathAdvancedPattern="string" android:fragment="string" android:fragmentPattern="string" android:fragmentPrefix="string" android:fragmentSuffix="string" android:fragmentAdvancedPattern="string" android:query="string" android:queryPattern="string" android:queryPrefix="string" android:querySuffix="string" android:queryAdvancedPattern="string" />
- 包含於:
-
<intent-filter><uri-relative-filter-group> - 說明:
- 在資料篩選器中加入資料規格。規格為資料類型,可使用
mimeType屬性、URI,或資料類型與 URI 並用。URI 透過其每個部分的不同屬性指定:<scheme>://<host>:<port>[<path>|<pathPrefix>|<pathPattern>|<pathAdvancedPattern>|<pathSuffix>]這些指定網址格式的屬性是可選的,但也彼此相依:
同一個
<intent-filter>元素中包含的所有<data>元素都有助於同一個篩選器。舉例來說,下列篩選器規格,<intent-filter . . . > <data android:scheme="something" android:host="project1.example.com" /> <data android:scheme="something-else" android:host="project2.example.com" android:path="/page1" /> ... </intent-filter>
相當於下列項目:
<intent-filter . . . > <data android:scheme="something" /> <data android:scheme="something-else" /> <data android:host="project1.example.com" /> <data android:host="project2.example.com" /> <data android:path="/page1" /> ... </intent-filter>
您可以在
<intent-filter>中放入任意數量的<data>元素,藉此提供多個資料選項。沒有任何預設值的屬性。如需瞭解意圖篩選器的運作方式 (包括意圖物件如何與篩選器比對的規則),請參閱資訊清單檔案總覽中的「意圖和意圖篩選器」以及「意圖篩選器」章節。
- 屬性:
android:scheme- URI 配置部分。這是指定 URI 的基本必要屬性。您必須為篩選器設定至少一個
scheme屬性,否則其他的 URI 屬性就沒有意義。指定的配置不含結尾冒號,例如應指定
http,而非http:。如果已使用
mimeType屬性為篩選器設定資料類型,但並未設定配置,則系統會採用content:和file:配置。注意:與 RFC 不同,Android 架構中的配置比對有大小寫之分。因此,請一律使用小寫英文字母指定配置。
android:host-
URI 授權的主機部分。除非為篩選器也指定
scheme屬性,否則這個屬性不具任何意義。如要比對多個子網域,請使用星號 (*) 來比對主機中的零個或多個字元。例如,主機*.google.com會比對www.google.com、.google.com和developer.google.com。星號必須是主機屬性的第一個半形字元。舉例來說,主機
google.co.*無效,因為第一個半形字元不是星號萬用字元。注意:Android 架構中的主機名稱比對會區分大小寫,與正式的 RFC 不同。因此,請一律使用小寫英文字母指定主機名稱。
android:port- URI 授權的通訊埠部分。只有在篩選器也指定了
scheme和host屬性時,這個屬性才有意義。 android:pathandroid:pathPrefixandroid:pathSuffixandroid:pathPatternandroid:pathAdvancedPattern- URI 的路徑部分,開頭必須是
/。path屬性會指定與Intent物件中完整路徑相符的完整路徑。pathPrefix屬性會指定只與Intent物件中路徑初始部分相符的局部路徑。pathSuffix屬性會與Intent物件中路徑的結尾部分完全相符,而且開頭不必是/字元。pathPattern屬性會指定與Intent物件中完整路徑相符的完整路徑,但可包含下列萬用字元:- 句點 (
.) 會比對任何字元。 -
星號 (
*) 代表前一個字元出現 0 次以上到多次的序列。 -
半形句號後面加上星號 (
.*),代表 0 個字元以上的任何序列。
pathAdvancedPattern屬性會指定與Intent物件中完整路徑相符的完整路徑,並支援下列類似規則運算式的模式:-
句點 (
.) 會比對任何字元。 -
(「
[...]」) 組合會比對字元範圍。舉例來說,[0-5]會與從 0 到 5 的個位數字比對,但不與 6 到 9 的個位數字比對。[a-zA-Z]會比對任何字母,不區分大小寫。此組合也支援「not」^修飾符。 -
星號 (
*) 修飾符會比對上述模式 0 次以上。 -
加號 (
+) 修飾符會比對上述模式 1 次以上。 -
範圍 (
{...}) 修飾符可用於指定模式可比對的次數。
pathAdvancedPattern比對器是一種評估實作,可即時依據相應模式進行比對,並且不支援回溯追蹤。由於在從 XML 讀取字串時,系統會使用「
\」做為逸出字元,因此在剖析為模式之前,您必須先進行雙重逸出。例如,將常值「*」寫入為「\\*」,常值「\」寫入為\\\。這就如同在 Java 程式碼中建構字串時編寫的內容。如要進一步瞭解這五種模式,請參閱
PatternMatcher類別中PATTERN_LITERAL、PATTERN_PREFIX、PATTERN_SIMPLE_GLOB、PATTERN_SUFFIX和PATTERN_ADVANCED_GLOB的說明。只有在篩選器一併指定
scheme和host屬性時,這些屬性才有意義。pathSuffix和pathAdvancedPattern是在 API 級別 31 中導入。 - 句點 (
android:fragmentandroid:fragmentPrefixandroid:fragmentSuffixandroid:fragmentPatternandroid:fragmentAdvancedPattern-
URI 片段的比對器。請勿加入
#前置字元。請參閱上方說明,瞭解各屬性允許的含義和模式。如要比對通常為 URI 編碼的字元,請在屬性值中加入原始 (未編碼) 形式。例如,
<data android:fragment="test!" />符合#test!和#test%21。在 API 級別 35 中導入。
android:queryandroid:queryPrefixandroid:querySuffixandroid:queryPatternandroid:queryAdvancedPattern-
網址查詢參數 (以及選用的值) 的比對器。舉例來說,您可以將結尾為
?param=value的 URI 與<data android:query="param=value" />比對。請勿加入?前置字元。請參閱上方說明,瞭解各屬性允許的模式和含義。如要比對通常已編碼為 URI 的字元,請在屬性值中加入原始 (未編碼) 形式。例如,
<data android:query="test!" />符合?test!和?test%21。在 API 級別 35 中導入。
android:mimeType- MIME 媒體類型,例如
image/jpeg或audio/mpeg4-generic。子類型可以是星號萬用字元 (*),表示任何子類型比對符合情況。意圖篩選器宣告的
<data>元素只包含android:mimeType屬性是很常見的情況。注意:Android 架構中的 MIME 類型比對必須區分大小寫,與正式的 RFC MIME 類型不同。因此,請一律使用小寫英文字母指定 MIME 類型。
- 導入版本:
- API 級別 1
- 另請參閱:
<action><category>
<資料>
這個頁面中的內容和程式碼範例均受《內容授權》中的授權所規範。Java 與 OpenJDK 是 Oracle 和/或其關係企業的商標或註冊商標。
上次更新時間:2025-07-27 (世界標準時間)。
[null,null,["上次更新時間:2025-07-27 (世界標準時間)。"],[],[]]