- söz dizimi:
<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" />
- şunları içerir:
<intent-filter>
- description:
- Niyet filtresine veri spesifikasyonu ekler. Spesifikasyon,
mimeType
özelliği veya URI ya da hem veri türü hem de URI kullanan bir veri türüdür. URI, her bir parçasının her bir parçası 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 karşılıklı olarak bağımlıdır:
- Niyet filtresi için bir
scheme
belirtilmezse diğer tüm URI özellikleri yoksayılır. - Filtre için bir
host
belirtilmezseport
özelliği ve tüm yol özellikleri yoksayılır.
Aynı
<intent-filter>
öğesinde bulunan tüm<data>
öğeleri aynı filtreye katkıda bulunur. Dolayısıyla, örneğin aşağıdaki filtre spesifikasyonu:<intent-filter . . . > <data android:scheme="something" android:host="project.example.com" /> ... </intent-filter>
şuna eşdeğerdir:
<intent-filter . . . > <data android:scheme="something" /> <data android:host="project.example.com" /> ... </intent-filter>
Bir
<intent-filter>
içine dilediğiniz sayıda<data>
öğesi yerleştirerek birden fazla veri seçeneği sunabilirsiniz. Özelliklerinin hiçbirinde varsayılan değer yok.Amaç nesnelerinin filtrelerle nasıl eşleştirileceğine dair kurallar da dahil olmak üzere intent filtrelerinin çalışma şekli hakkında bilgi için manifest dosyasına genel bakıştaki Niyetler ve Amaç Filtreleri ve Amaç filtreleri bölümüne bakın.
- Niyet filtresi için bir
- özellikler:
android:scheme
- URI'nin şema kısmıdır. Bu, bir URI'yi belirtmek için gereken
en küçük temel özelliktir. Filtre için en az bir
scheme
özelliği ayarlanmalıdır. Aksi takdirde diğer URI özelliklerinin hiçbiri anlamlı değildir.Şema, iki nokta olmadan belirtilir (ör.
http:
yerinehttp
).Filtrenin bir veri türü kümesi (
mimeType
özelliği kullanılarak) varsa ancak şema yoksacontent:
vefile:
şemaları varsayılır.Not: Android çerçevesindeki şema eşleşmesi, RFC'nin aksine büyük/küçük harfe duyarlıdır. Bu nedenle, şemaları her zaman küçük harfle belirtin.
android:host
-
URI yetkilisinin ana makine kısmıdır. Filtre için bir
scheme
özelliği de belirtilmedikçe bu özellik bir anlam ifade etmez. Birden fazla alt alan adını eşleştirmek için ana makinedeki sıfır veya daha fazla karakteri eşleştirmek üzere yıldız işareti (*
) kullanın. Örneğin,*.google.com
ana makinesiwww.google.com
,.google.com
vedeveloper.google.com
ile eşleşir.Yıldız işareti, barındırıcı özelliğinin ilk karakteri olmalıdır. Örneğin, yıldız işareti joker karakteri ilk karakter olmadığı için
google.co.*
ana makinesi geçersizdir.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 harfle belirtin.
android:port
- URI yetkilisinin bağlantı noktası kısmıdır. Bu özellik yalnızca filtre için
scheme
vehost
özellikleri de belirtilmişse anlamlı olur. android:path
android:pathPrefix
android:pathSuffix
android:pathPattern
android:pathAdvancedPattern
- Bir URI'nın
/
ile başlaması gereken yol kısmı.path
özelliği, birIntent
nesnesindeki tam yolla eşleşen tam bir yolu belirtir.pathPrefix
özelliği,Intent
nesnesindeki yolun yalnızca ilk kısmıyla eşleşen kısmi bir yolu belirtir.pathSuffix
özelliği,Intent
nesnesindeki yolun bitiş kısmıyla tam olarak eşleştirilir ve bu özelliğin/
karakteriyle başlaması gerekmez.pathPattern
özelliği,Intent
nesnesindeki tam yolla eşleşen tam yolu belirtir ancak aşağıdaki joker karakterleri içerebilir:- Yıldız işareti (
*
), hemen önündeki karakterin sıfır ila çok sayıda tekrarından oluşan bir diziyle eşleşir. - Arkasında yıldız işareti (
.*
) bulunan bir nokta, sıfır ile çok sayıda karakter içeren herhangi bir diziyle eşleşir.
pathAdvancedPattern
özelliği,Intent
nesnesinin tam yoluyla eşleşen tam bir yol belirtir ve aşağıdaki normal ifade benzeri kalıpları destekler:-
Nokta (
.
) herhangi bir karakterle eşleşir. -
Bir grup (
[...]
), 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ında bir rakamla eşleşmez.[a-zA-Z]
, büyük/küçük harfe bakılmaksızın herhangi bir harfle eşleşir. Kümeler, "not"^
değiştiricisini de destekler. -
Yıldız işareti (
*
) değiştiricisi, öncesindeki 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.
pathAdvancedPattern
eşleştirici, geri izleme desteği olmadan eşleştirmenin gerçek zamanlı olarak kalıpla karşılaştırıldığı bir değerlendirme uygulamasıdır.Dize XML'den okunurken
\
bir çıkış karakteri olarak kullanıldığından, dize kalıp olarak ayrıştırılmadan önce çift çıkış karakteri kullanmanız gerekir. Örneğin,*
değişmez değeri\\*
olarak,\
harfi ise\\\
olarak yazılır. Bu, Java kodunda dizeyi oluştururken yazdıklarınıza benzer.Bu beş kalıp türü hakkında daha fazla bilgi için
PatternMatcher
sınıfındakiPATTERN_LITERAL
,PATTERN_PREFIX
,PATTERN_SIMPLE_GLOB
,PATTERN_SUFFIX
vePATTERN_ADVANCED_GLOB
açıklamalarına bakın.Bu özelliklerin anlamlı olması için filtrede
scheme
vehost
özelliklerinin de belirtilmiş olması gerekir.pathSuffix
vepathAdvancePattern
, API düzeyi 31'de kullanıma sunulmuştur. - Yıldız işareti (
android:mimeType
image/jpeg
veyaaudio/mpeg4-generic
gibi 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.Amaç filtrelerinin yalnızca
android:mimeType
özelliğini içeren bir<data>
öğesi tanımlaması yaygın bir durumdur.Not: Resmi RFC MIME türlerinin aksine Android çerçevesindeki MIME türü eşleşmesi büyük/küçük harfe duyarlıdır. Bu nedenle, MIME türlerini her zaman küçük harfler kullanarak belirtin.
- kullanıma sunulduğu tarih:
- API düzeyi 1
- şuna da bakabilirsiniz:
<action>
<category>
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: 2023-10-18 UTC.
[]
[]