- 語法:
<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" />
- 包含於:
<intent-filter>
- 說明:
- 在資料篩選器中加入資料規格。規格為
使用
mimeType
做為資料類型 URI 或資料類型與 URIURI 透過其每個部分的不同屬性指定:<scheme>://<host>:<port>[<path>|<pathPrefix>|<pathPattern>|<pathAdvancedPattern>|<pathSuffix>]
這些指定 URI 格式的屬性是可選的,但也彼此相依:
同一個
<intent-filter>
元素中包含的所有<data>
元素都有助於同一個篩選器。舉例來說,下列篩選器規格:<intent-filter . . . > <data android:scheme="something" android:host="project.example.com" /> ... </intent-filter>
相當於下列項目:
<intent-filter . . . > <data android:scheme="something" /> <data android:host="project.example.com" /> ... </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:path
android:pathPrefix
android:pathSuffix
android:pathPattern
android: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 程式碼建構字串如需進一步瞭解這五種模式,請參閱
PATTERN_LITERAL
,PATTERN_PREFIX
,PATTERN_SIMPLE_GLOB
,PATTERN_SUFFIX
和PATTERN_ADVANCED_GLOB
的PatternMatcher
類別。只有在篩選器一併指定
scheme
和host
屬性時,這些屬性才有意義。pathSuffix
和pathAdvancedPattern
是在 API 級別 31 中導入。 - 星號 (
android:mimeType
- MIME 媒體類型,例如
image/jpeg
或audio/mpeg4-generic
。子類型可以是星號萬用字元 (*
),表示任何 子類型比對。意圖篩選器宣告的
<data>
元素通常包含 只有android:mimeType
屬性。注意:Android 架構中的 MIME 類型比對必須區分大小寫,與正式的 RFC MIME 類型不同。因此,請務必 請使用小寫英文字母指定 MIME 類型。
- 導入版本:
- API 級別 1
- 另請參閱:
<action>
<category>
這個頁面中的內容和程式碼範例均受《內容授權》中的授權所規範。Java 與 OpenJDK 是 Oracle 和/或其關係企業的商標或註冊商標。
上次更新時間:2024-08-22 (世界標準時間)。
[null,null,["上次更新時間:2024-08-22 (世界標準時間)。"],[],[]]