- 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, atributport
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.
- Jika
- 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
, bukanhttp:
.Jika jenis data telah ditetapkan untuk filter (menggunakan atribut
mimeType
), tetapi tidak ada skema,content:
danfile:
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 denganwww.google.com
,.google.com
, dandeveloper.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
danhost
juga ditentukan untuk filter. android:path
android:pathPrefix
android:pathSuffix
android:pathPattern
android:pathAdvancedPattern
- Bagian jalur URI yang harus diawali dengan
/
. Atributpath
menentukan jalur lengkap yang dicocokkan dengan jalur lengkap di objekIntent
. AtributpathPrefix
menentukan jalur parsial yang dicocokkan hanya dengan bagian awal dari jalur di objekIntent
.Atribut
pathSuffix
dicocokkan persis dengan bagian akhir jalur di objekIntent
, dan atribut ini tidak harus diawali dengan karakter/
. AtributpathPattern
menentukan jalur lengkap yang dicocokkan dengan jalur lengkap di objekIntent
, 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 objekIntent
, 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.
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
, danPATTERN_ADVANCED_GLOB
dalam classPatternMatcher
.Atribut ini hanya dapat digunakan jika atribut
scheme
danhost
juga ditentukan untuk filter.pathSuffix
danpathAdvancedPattern
diperkenalkan di API level 31. - Tanda bintang (
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
atauaudio/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 atributandroid: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>
Konten dan contoh kode di halaman ini tunduk kepada lisensi yang dijelaskan dalam Lisensi Konten. Java dan OpenJDK adalah merek dagang atau merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2024-12-02 UTC.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Informasi yang saya butuhkan tidak ada","missingTheInformationINeed","thumb-down"],["Terlalu rumit/langkahnya terlalu banyak","tooComplicatedTooManySteps","thumb-down"],["Sudah usang","outOfDate","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Masalah kode / contoh","samplesCodeIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2024-12-02 UTC."],[],[]]