- sintaksis:
<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" />
- terdapat dalam:
<intent-filter>
- deskripsi:
- Menambahkan spesifikasi data ke filter intent. Spesifikasi tersebut bisa
berupa jenis data saja (atribut
mimeType
), URI saja, atau kombinasi keduanya. URI ditentukan oleh atribut terpisah untuk setiap bagiannya:<scheme>://<host>:<port>[<path>|<pathPrefix>|<pathPattern>|<pathAdvancedPattern>|<pathSuffix>]
Atribut yang menentukan format URL 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.Informasi tentang cara kerja filter intent, termasuk aturan cara objek Intent dicocokkan dengan filter, dapat ditemukan di dokumen lain, Intent dan Filter Intent. Lihat juga bagian Filter Intent di dalam ringkasan file manifes.
- Jika
- atribut:
android:scheme
- Bagian skema URI. Ini adalah atribut penting minimal untuk
menentukan URI; setidaknya satu atribut
scheme
harus ditetapkan untuk filter, atau tidak ada atribut URI lainnya yang tepat.Skema ditentukan tanpa tanda titik dua (misalnya,
http
, bukanhttp:
).Jika jenis data telah ditetapkan untuk filter (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, sebaiknya 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, host
google.co.*
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, Anda harus selalu menentukan 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 tanda /.
Atribut
path
menentukan jalur lengkap yang dicocokkan dengan jalur lengkap di objek Intent. AtributpathPrefix
menentukan jalur parsial yang dicocokkan hanya dengan bagian awal dari jalur di objek Intent. AtributpathSuffix
dicocokkan persis dengan bagian akhir jalur di objek Intent, dan atribut ini tidak perlu diawali dengan karakter '/'. AtributpathPattern
menentukan jalur lengkap yang dicocokkan dengan jalur lengkap di objek Intent, tetapi atribut tersebut dapat berisi karakter pengganti berikut:- Tanda bintang ('
*
') mencocokkan urutan dari 0 hingga sekian kemunculan karakter langsung yang mendahuluinya. - Titik diikuti tanda bintang ("
.*
") mencocokkan urutan apa pun dari 0 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. Demikian pula,[a-zA-Z]
akan cocok dengan huruf apa pun, baik besar maupun kecil. Kumpulan juga mendukung pengubah^
yang cocok selain dengan karakter yang ditentukan. -
Pengubah bintang ('
*
') cocok dengan pola sebelumnya 0 kali atau lebih. -
Pengubah plus ('
+
') cocok dengan pola sebelumnya 1 kali atau lebih. -
Pengubah rentang ('
{...}
') dapat digunakan untuk menentukan banyaknya kecocokan pola.
pathAdvancedPattern
adalah penerapan evaluasi sederhana 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 perlu melakukan double-escape: Misalnya, '*
' literal akan ditulis sebagai "\\*
" dan '\
' literal akan ditulis sebagai "\\\\
". Tindakan ini pada dasarnya sama dengan yang harus Anda tulis jika menyusun string dalam kode Java.Untuk mengetahui informasi selengkapnya tentang lima 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
danpathAdvancePattern
diperkenalkan di API Level 31. - Tanda bintang ('
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
<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, Anda harus selalu menentukan jenis MIME menggunakan huruf kecil.
- diperkenalkan di:
- API Level 1
- lihat juga:
<action>
<category>
Konten dan contoh kode di halaman ini tunduk pada lisensi yang dijelaskan dalam Lisensi Konten. Java dan OpenJDK adalah merek dagang atau merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2023-03-27 UTC.
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"Informasi yang saya butuhkan tidak ada"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"Terlalu rumit/langkahnya terlalu banyak"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"Sudah usang"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"Masalah terjemahan"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"Masalah kode / contoh"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"Lainnya"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"Mudah dipahami"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"Memecahkan masalah saya"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"Lainnya"
}]