<資料>

語法:
<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 格式的屬性是可選的,但也彼此相依:

  • 如果scheme 並未為意圖篩選器指定,系統將忽略所有其他 URI 屬性。
  • 如果host 未指定篩選器,系統會忽略 port 屬性和所有路徑屬性。

同一個 <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.comdeveloper.google.com

星號必須是主機屬性的第一個半形字元。舉例來說,主機 google.co.* 無效,因為第一個字元不是星號萬用字元。

注意:Android 架構中的主機名稱比對方式為 區分大小寫,與正式的 RFC 不同。因此,請務必指定 主機名稱使用小寫英文字母。

android:port
URI 授權的通訊埠部分。只有在篩選器也指定了 schemehost 屬性時,這個屬性才有意義。
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_SUFFIXPATTERN_ADVANCED_GLOBPatternMatcher 類別。

只有在篩選器一併指定 schemehost 屬性時,這些屬性才有意義。

pathSuffixpathAdvancedPattern 是在 API 級別 31 中導入。

android:mimeType
MIME 媒體類型,例如 image/jpegaudio/mpeg4-generic。子類型可以是星號萬用字元 (*),表示任何 子類型比對。

意圖篩選器宣告的 <data> 元素通常包含 只有 android:mimeType 屬性。

注意:Android 架構中的 MIME 類型比對必須區分大小寫,與正式的 RFC MIME 類型不同。因此,請務必 請使用小寫英文字母指定 MIME 類型。

導入版本:
API 級別 1
另請參閱:
<action>
<category>