- söz dizimi:
- Veri etiketi, bir
<intent-filter>öğesinin doğrudan alt öğesiyse:<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" />
Veri etiketi,<uri-relative-filter-group>öğesinin doğrudan alt öğesiyse:
<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" />
- içerdiği:
-
<intent-filter><uri-relative-filter-group> - description:
- Bir intent filtresine veri spesifikasyonu ekler. Spesifikasyon,
mimeTypeözelliğini kullanan bir veri türü, bir URI veya hem veri türü hem de URI'dir. URI, her bölümü için ayrı özelliklerle belirtilir:<scheme>://<host>:<port>[<path>|<pathPrefix>|<pathPattern>|<pathAdvancedPattern>|<pathSuffix>]URI biçimini belirten bu özellikler isteğe bağlıdır ancak birbirine bağlıdır:
- Intent filtresi için
schemebelirtilmemişse diğer tüm URI özellikleri yoksayılır. - Filtre için
hostbelirtilmemişseportözelliği ve tüm yol özellikleri yoksayılır.
Aynı
<intent-filter>öğesinde bulunan tüm<data>öğeleri aynı filtreye katkıda bulunur. Örneğin, aşağıdaki filtre spesifikasyonu:<intent-filter . . . > <data android:scheme="something" android:host="project1.example.com" /> <data android:scheme="something-else" android:host="project2.example.com" android:path="/page1" /> ... </intent-filter>
ile eş değerdir:
<intent-filter . . . > <data android:scheme="something" /> <data android:scheme="something-else" /> <data android:host="project1.example.com" /> <data android:host="project2.example.com" /> <data android:path="/page1" /> ... </intent-filter>
Birden fazla veri seçeneği sunmak için bir
<data>öğesinin içine istediğiniz sayıda<intent-filter>yerleştirebilirsiniz. Özelliklerinin hiçbirinde varsayılan değer yok.Amaç filtrelerinin işleyiş şekli (amaç nesnelerinin filtrelere göre nasıl eşleştirileceğiyle ilgili kurallar dahil) hakkında bilgi edinmek için Amaçlar ve Amaç Filtreleri ile manifest dosyası genel bakışındaki Amaç filtreleri bölümüne bakın.
- Intent filtresi için
- özellikleri:
android:scheme- Bir URI'nin şema kısmı. Bu, URI belirtmek için gereken en temel özelliktir. Filtre için en az bir
schemeözelliği ayarlanmalıdır. Aksi takdirde diğer URI özelliklerinin hiçbiri anlamlı olmaz.Şema, sondaki iki nokta üst üste olmadan belirtiliyor. Örneğin,
http:yerinehttp.Filtrenin
mimeTypeözelliği kullanılarak ayarlanmış bir veri türü varsa ancak şeması yoksacontent:vefile:şemaları varsayılır.Not: Android çerçevesindeki şema eşleştirme, RFC'nin aksine büyük/küçük harfe duyarlıdır. Bu nedenle, şemaları her zaman küçük harflerle belirtin.
android:host-
URI yetkilisinin ana makine kısmı. Bu özellik, filtre için
schemeözelliği de belirtilmediği sürece anlamsızdır. Birden fazla alt alan adını eşleştirmek için ana makinede sıfır veya daha fazla karakteri eşleştirmek üzere yıldız işareti (*) kullanın. Örneğin,*.google.comana makinesiwww.google.com,.google.comvedeveloper.google.comile eşleşir.Yıldız işareti, barındırıcı özelliğinin ilk karakteri olmalıdır. Örneğin, ana makine
google.co.*geçersizdir. Bunun nedeni, yıldız işareti joker karakterinin ilk karakter olmamasıdır.Not: Android çerçevesindeki ana makine adı eşleştirme, resmi RFC'nin aksine büyük/küçük harfe duyarlıdır. Bu nedenle, ana makine adlarını her zaman küçük harflerle belirtin.
android:port- URI yetkilisinin bağlantı noktası kısmı. Bu özellik yalnızca filtre için
schemevehostözellikleri de belirtilmişse anlamlıdır. android:pathandroid:pathPrefixandroid:pathSuffixandroid:pathPatternandroid:pathAdvancedPattern- Bir URI'nin yol kısmı
/ile başlamalıdır.pathözelliği,Intentnesnesindeki tam yolla eşleşen tam bir yolu belirtir.pathPrefixözelliği, yalnızcaIntentnesnesindeki yolun ilk kısmıyla eşleşen kısmi bir yolu belirtir.pathSuffixözelliği,Intentnesnesindeki yolun son kısmıyla tam olarak eşleştirilir ve bu özelliğin/karakteriyle başlaması gerekmez.pathPatternözelliği,Intentnesnesindeki tam yolla eşleşen tam bir yolu belirtir ancak aşağıdaki joker karakterleri içerebilir:-
Nokta (
.) herhangi bir tek karakterle eşleşir. Nokta karakterini eşleştirmek için XML'nizde\\.olarak kaçış karakterlerinin arasına alın. -
Yıldız işareti (
*), hemen önceki karakterin sıfır ile çok sayıda tekrarıyla eşleşir. Örneğin,a*, "a" ve "aa" ile eşleşir ancak boş bir dizeyle eşleşmez. -
Nokta ve ardından gelen yıldız işareti (
.*), sıfır veya daha fazla karakterden oluşan herhangi bir diziyle eşleşir. Örneğin,.*boş bir dizeyle,b.*ise "b", "bc" ve "bcd" ile eşleşir.
pathPatternile ilgili önemli noktalar:- Geri İzleme Yok: Android'in desen eşleştiricisi, dizeleri geri izleme olmadan tek bir ileri geçişte değerlendirir. Bir joker karakter, daha sonra desende gerekli olan karakterleri kullanırsa eşleşme başarısız olur.
-
.*tembeldir:.*joker karakteri tembeldir. Kalıptaki bir sonraki değişmez karakterin ilk oluşumunu bulana kadar karakterleri tüketir.-
"abc.*xyz","abcpxqrxyz"ile eşleşmez..*, ilk"x"'te ("px..."'den itibaren) geç durur. Kalan dize"qrxyz", beklenen"yz"ile eşleşmez. -
Uyarı:
.*, durdurmak için tam karakter eşleşmesi aradığından"a.*.c","abbbc"ile eşleşmez. Eşleştirici, ikinci.karakterini gerçek bir nokta olarak değerlendirir ve dizeyi"."karakteri arayarak tarar. Dizinin sonuna ulaştığında eşleştirme başarısız olur.
-
-
*açgözlüdür: Yıldız işaretiyle (*) takip edilen belirli bir karakter (a*gibi) açgözlüdür. İleriye bakmadan bu karakterin tüm ardışık oluşumlarını tüketir.-
"a*a","aaa"gibi dizelerle eşleşmez.a*kısmı, üç"a"'yi de açgözlülükle tüketiyor. Daha sonra, kalıp son"a"karakterini bekler ancak dize zaten tükendiği için eşleşme başarısız olur.
-
- En İyi Uygulamalar:
-
Bir
*karakterinden hemen sonra gelen karakterin, bu karakterden önce gelen karakterle aynı olduğu (ör.a*a) kalıplardan kaçının. -
Joker karakterleri
.*işaretinden hemen sonra yerleştirmeyin (ör..*.veya.*.*). -
Bir öneki eşleştirmek istiyorsanız
pathPatternile.*ile bitirmek yerineandroid:pathPrefixkullanmak daha güvenli ve verimlidir.
-
Bir
pathAdvancedPatternözelliği,Intentnesnesinin tam yoluyla eşleşen ve aşağıdaki normal ifade benzeri kalıpları destekleyen tam bir yolu belirtir:-
Nokta (
.) herhangi bir karakterle eşleşir. -
Küme (
[...]), karakter aralıklarıyla eşleşir. Örneğin ,[0-5]0 ile 5 arasındaki tek bir rakamla eşleşir ancak 6 ile 9 arasındaki rakamlarla eşleşmez.[a-zA-Z]büyük/küçük harf ayrımı yapılmaksızın herhangi bir harfle eşleşir. Kümeler, "değil"^değiştiricisini de destekler. -
Yıldız işareti (
*) değiştiricisi, önceki kalıpla sıfır veya daha fazla kez eşleşir. -
Artı (
+) değiştiricisi, önceki kalıpla bir veya daha fazla kez eşleşir. -
Aralık (
{...}) değiştiricisi, bir kalıbın kaç kez eşleşebileceğini belirtir.
pathAdvancedPatterneşleştirici, eşleştirmenin geri izleme desteği olmadan anlık olarak kalıba göre yapıldığı bir değerlendirme uygulamasıdır.\, dize XML'den okunurken kaçış karakteri olarak kullanıldığından, desen olarak ayrıştırılmadan önce çift kaçış yapmanız gerekir. Örneğin,*değişmezi\\*olarak,\değişmezi ise\\\\olarak yazılır. Bu, Java kodunda dize oluştururken yazdıklarınıza benzer.Bu beş tür desen hakkında daha fazla bilgi için
PatternMatchersınıfındakiPATTERN_LITERAL,PATTERN_PREFIX,PATTERN_SIMPLE_GLOB,PATTERN_SUFFIXvePATTERN_ADVANCED_GLOBaçıklamalarına bakın.Bu özellikler yalnızca filtre için
schemevehostözellikleri de belirtilmişse anlamlıdır.pathSuffixvepathAdvancedPattern, API düzeyi 31'de kullanıma sunuldu. -
Nokta (
android:fragmentandroid:fragmentPrefixandroid:fragmentSuffixandroid:fragmentPatternandroid:fragmentAdvancedPattern-
URI parçası için eşleştirici.
#önekini eklemeyin. Her bir özelliğin anlamı ve izin verilen kalıplar için yukarıya bakın.Genellikle URI kodlaması yapılan karakterlerle eşleşmek için ham (kodlanmamış) biçimi özellik değerine ekleyin. Örneğin,
<data android:fragment="test!" />,#test!ve#test%21ile eşleşir.API düzeyi 35'te kullanıma sunulmuştur.
android:queryandroid:queryPrefixandroid:querySuffixandroid:queryPatternandroid:queryAdvancedPattern-
Bir URI sorgu parametresi (ve isteğe bağlı olarak bir değer) için eşleştirici. Örneğin,
?param=valueile biten URI'leri<data android:query="param=value" />ile eşleştirebilirsiniz.?önekini eklemeyin. Her bir özelliğin anlamı ve izin verilen kalıplar için yukarıya bakın.Genellikle URI kodlu olan karakterlerle eşleşmek için özellik değerine ham (kodlanmamış) biçimi ekleyin. Örneğin,
<data android:query="test!" />,?test!ve?test%21ile eşleşir.API düzeyi 35'te kullanıma sunulmuştur.
android:mimeTypeimage/jpegveyaaudio/mpeg4-genericgibi bir MIME medya türü. Alt tür, herhangi bir alt türün eşleştiğini belirtmek için yıldız işareti joker karakteri (*) olabilir.Intent filtresinin yalnızca
android:mimeTypeözelliğini içeren bir<data>öğesi bildirmesi yaygındır.Not: Android çerçevesindeki MIME türü eşleştirme, resmi RFC MIME türlerinin aksine büyük/küçük harfe duyarlıdır. Bu nedenle, MIME türlerini her zaman küçük harflerle belirtin.
- Tanıtıldığı oyun:
- API düzeyi 1
- Ayrıca:
<action><category>
<veriler>
Bu sayfadaki içerik ve kod örnekleri, İçerik Lisansı sayfasında açıklanan lisanslara tabidir. Java ve OpenJDK, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.
Son güncelleme tarihi: 2026-04-21 UTC.
[[["Anlaması kolay","easyToUnderstand","thumb-up"],["Sorunumu çözdü","solvedMyProblem","thumb-up"],["Diğer","otherUp","thumb-up"]],[["İhtiyacım olan bilgiler yok","missingTheInformationINeed","thumb-down"],["Çok karmaşık / çok fazla adım var","tooComplicatedTooManySteps","thumb-down"],["Güncel değil","outOfDate","thumb-down"],["Çeviri sorunu","translationIssue","thumb-down"],["Örnek veya kod sorunu","samplesCodeIssue","thumb-down"],["Diğer","otherDown","thumb-down"]],["Son güncelleme tarihi: 2026-04-21 UTC."],[],[]]