<data>

sintaksis:
Jika tag data adalah turunan langsung dari <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" />

Jika tag data adalah turunan langsung dari <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" />
terdapat dalam:
<intent-filter>
<uri-relative-filter-group>
deskripsi:
Menambahkan spesifikasi data ke filter intent. Spesifikasinya adalah jenis data, menggunakan atribut mimeType, URI, atau jenis data dan URI. URI ditentukan oleh atribut terpisah untuk setiap bagiannya:

<scheme>://<host>:<port>[<path>|<pathPrefix>|<pathPattern>|<pathAdvancedPattern>|<pathSuffix>]

Atribut yang menentukan format URI ini bersifat opsional, tetapi juga bergantung satu sama lain:

  • Jika scheme tidak ditentukan untuk filter intent, semua atribut URI lainnya akan diabaikan.
  • Jika host tidak ditentukan untuk filter, atribut port dan semua atribut jalur akan diabaikan.

Semua elemen <data> yang terkandung dalam elemen <intent-filter> yang sama memberi kontribusi pada filter yang sama. Jadi, misalnya, spesifikasi filter berikut:

<intent-filter . . . >
    <data android:scheme="something" android:host="project.example.com" />
    ...
</intent-filter>

sama dengan spesifikasi filter ini:

<intent-filter . . . >
    <data android:scheme="something" />
    <data android:host="project.example.com" />
    ...
</intent-filter>

Anda dapat menempatkan berapa pun elemen <data> di dalam <intent-filter> untuk memberinya beberapa opsi data. Tidak ada atributnya yang memiliki nilai default.

Untuk mengetahui informasi cara kerja filter intent, seperti aturan cara objek intent dicocokkan dengan filter, lihat Intent dan Filter Intent serta Intent filter di ringkasan file manifes.

atribut:
android:scheme
Bagian skema URI. Ini adalah atribut penting minimal untuk menentukan URI. Minimal satu atribut scheme harus ditetapkan untuk filter, atau tidak ada atribut URI lainnya yang tepat.

Skema ditentukan tanpa tanda titik dua, seperti http, bukan http:.

Jika jenis data telah ditetapkan untuk filter (menggunakan atribut mimeType), tetapi tidak ada skema, content: dan file: akan dianggap sebagai skema untuk filter tersebut.

Catatan: Pencocokan skema di framework Android peka huruf besar/kecil, tidak seperti RFC. Oleh karena itu, selalu tentukan skema menggunakan huruf kecil.

android:host
Bagian host otoritas URI. Atribut ini tidak dapat digunakan kecuali jika atribut scheme juga ditetapkan untuk filter. Untuk mencocokkan beberapa subdomain, gunakan tanda bintang (*) agar cocok dengan nol karakter atau lebih dalam host. Misalnya, host *.google.com cocok dengan www.google.com, .google.com, dan developer.google.com.

Tanda bintang harus menjadi karakter pertama dari atribut host. Misalnya, google.co.* host tidak valid karena karakter pengganti tanda bintang bukan karakter pertama.

Catatan: Pencocokan nama host di framework Android peka huruf besar/kecil, tidak seperti RFC formal. Oleh karena itu, selalu tentukan nama host menggunakan huruf kecil.

android:port
Bagian port otoritas URI. Atribut ini hanya dapat digunakan jika atribut scheme dan host juga ditentukan untuk filter.
android:path
android:pathPrefix
android:pathSuffix
android:pathPattern
android:pathAdvancedPattern
Bagian jalur URI yang harus diawali dengan /. Atribut path menentukan jalur lengkap yang dicocokkan dengan jalur lengkap di objek Intent. Atribut pathPrefix menentukan jalur parsial yang dicocokkan hanya dengan bagian awal dari jalur di objek Intent.

Atribut pathSuffix dicocokkan persis dengan bagian akhir jalur di objek Intent, dan atribut ini tidak harus diawali dengan karakter /. Atribut pathPattern menentukan jalur lengkap yang dicocokkan dengan jalur lengkap di objek Intent, tetapi atribut tersebut dapat berisi karakter pengganti berikut:

  • Tanda bintang (*) cocok dengan urutan nol hingga banyak kemunculan karakter sebelumnya.
  • Titik diikuti tanda bintang (.*) cocok dengan urutan apa pun dari nol hingga sekian karakter.

Atribut pathAdvancedPattern menentukan jalur lengkap yang dicocokkan dengan jalur lengkap objek Intent, dan mendukung pola seperti ekspresi reguler berikut:

  • Titik (.) cocok dengan karakter apa pun.
  • Kumpulan ([...]) cocok dengan rentang karakter. Misalnya, [0-5] cocok dengan satu digit antara 0 sampai 5, tetapi tidak cocok dengan 6 sampai 9. [a-zA-Z] cocok dengan huruf apa pun, baik besar maupun kecil. Kumpulan juga mendukung pengubah "bukan" ^.
  • Pengubah tanda bintang (*) cocok dengan pola sebelumnya sebanyak nol kali atau lebih.
  • Pengubah plus (+) cocok dengan pola sebelumnya sebanyak satu kali atau lebih.
  • Pengubah rentang ({...}) menentukan banyaknya kecocokan pola.
Pencocok pathAdvancedPattern adalah penerapan evaluasi yang memungkinkan pencocokan dilakukan terhadap pola secara real time tanpa dukungan backtracking.

Karena \ digunakan sebagai karakter escape saat string dibaca dari XML, sebelum diurai sebagai pola, Anda harus melakukan double-escape. Misalnya, * literal ditulis sebagai \\*, dan \ literal ditulis sebagai \\\. Penulisan ini sama seperti yang Anda gunakan saat membuat string dalam kode Java.

Untuk mengetahui informasi selengkapnya tentang jenis pola ini, lihat deskripsi PATTERN_LITERAL, PATTERN_PREFIX, PATTERN_SIMPLE_GLOB, PATTERN_SUFFIX, dan PATTERN_ADVANCED_GLOB dalam class PatternMatcher.

Atribut ini hanya dapat digunakan jika atribut scheme dan host juga ditentukan untuk filter.

pathSuffix dan pathAdvancedPattern diperkenalkan di API level 31.

android:fragment
android:fragmentPrefix
android:fragmentSuffix
android:fragmentPattern
android:fragmentAdvancedPattern

Pencocok untuk fragmen URI. Jangan sertakan awalan #. Lihat di atas untuk mengetahui makna dan pola yang diizinkan di setiap atribut.

Untuk mencocokkan karakter yang biasanya dienkode URI, sertakan bentuk mentah (tidak dienkode) dalam nilai atribut. Misalnya, <data android:fragment="test!" /> cocok dengan #test! dan #test%21.

Diperkenalkan di API level 35.

android:query
android:queryPrefix
android:querySuffix
android:queryPattern
android:queryAdvancedPattern

Pencocok untuk parameter kueri URI (dan, secara opsional, nilai). Misalnya, Anda dapat mencocokkan URI yang diakhiri dengan ?param=value dengan <data android:query="param=value" />. Jangan sertakan awalan ?. Lihat di atas untuk mengetahui arti dan pola yang diizinkan di setiap atribut.

Untuk mencocokkan karakter yang biasanya dienkode URI, sertakan bentuk mentah (tidak dienkode) dalam nilai atribut. Misalnya, <data android:query="test!" /> cocok dengan ?test! dan ?test%21.

Diperkenalkan di API level 35.

android:mimeType
Jenis media MIME, seperti image/jpeg atau audio/mpeg4-generic. Subjenis dapat berupa karakter pengganti tanda bintang (*) untuk menunjukkan bahwa semua subjenis cocok.

Sangatlah umum bagi filter intent untuk mendeklarasikan elemen <data> yang hanya menyertakan atribut android:mimeType.

Catatan: Pencocokan jenis MIME di framework Android peka huruf besar/kecil, tidak seperti jenis MIME RFC formal. Oleh karena itu, selalu tentukan jenis MIME menggunakan huruf kecil.

diperkenalkan di:
API level 1
lihat juga:
<action>
<category>