<veriler>

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 belirtilmezse port ö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.

ö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: yerine http).

Filtrenin bir veri türü kümesi (mimeType özelliği kullanılarak) varsa ancak şema yoksa content: ve file: ş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 makinesi www.google.com, .google.com ve developer.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 ve host ö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, bir Intent 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ındaki PATTERN_LITERAL, PATTERN_PREFIX, PATTERN_SIMPLE_GLOB, PATTERN_SUFFIX ve PATTERN_ADVANCED_GLOB açıklamalarına bakın.

Bu özelliklerin anlamlı olması için filtrede scheme ve host özelliklerinin de belirtilmiş olması gerekir.

pathSuffix ve pathAdvancePattern, API düzeyi 31'de kullanıma sunulmuştur.

android:mimeType
image/jpeg veya audio/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>