<dane>

składnia:
<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" />
zawarte w:
<intent-filter>
description:
Dodaje specyfikację danych do filtra intencji. Specyfikacja jest typem danych za pomocą atrybutu mimeType, identyfikatora URI lub zarówno typu danych, jak i identyfikatora URI. Identyfikator URI jest określany przez osobne atrybuty dla każdej części:

<scheme>://<host>:<port>[<path>|<pathPrefix>|<pathPattern>|<pathAdvancedPattern>|<pathSuffix>]

Te atrybuty określające format identyfikatora URI są opcjonalne, ale są też wzajemnie zależne:

  • Jeśli w filtrze intencji nie określisz parametru scheme, pozostałe atrybuty identyfikatora URI będą ignorowane.
  • Jeśli filtr host nie ma określonej wartości, atrybut port i wszystkie atrybuty ścieżki są ignorowane.

Wszystkie elementy <data> w obrębie tego samego elementu <intent-filter> składają się na ten sam filtr. Przykładowo ta specyfikacja filtra:

<intent-filter . . . >
    <data android:scheme="something" android:host="project.example.com" />
    ...
</intent-filter>

jest odpowiednikiem tej:

<intent-filter . . . >
    <data android:scheme="something" />
    <data android:host="project.example.com" />
    ...
</intent-filter>

W <intent-filter> możesz umieścić dowolną liczbę elementów <data>, aby dać mu wiele opcji danych. Żaden z jego atrybutów nie ma wartości domyślnych.

Więcej informacji o działaniu filtrów intencji, w tym o regułach dopasowywania obiektów intencji do filtrów, znajdziesz w sekcji dotyczącej intencji i filtrów intencji oraz w sekcji Filtry intencji w omówieniu pliku manifestu.

atrybuty:
android:scheme
Część schematu identyfikatora URI. Jest to najprostszy atrybut, który jest niezbędny do określania identyfikatora URI. Musisz ustawić co najmniej 1 atrybut scheme dla filtra lub żaden z pozostałych atrybutów URI nie jest przydatny.

Schemat jest określony bez dwukropka na końcu, np. http zamiast http:.

Jeśli filtr ma ustawiony typ danych (za pomocą atrybutu mimeType), ale nie ma schematu, przyjmuje się schematy content: i file:.

Uwaga: w dopasowaniu schematu w ramach platformy Androida wielkość liter ma znaczenie, w przeciwieństwie do standardu RFC. Dlatego zawsze określaj schematy, używając małych liter.

android:host
Część hosta identyfikatora URI. Ten atrybut jest bez znaczenia, chyba że w filtrze jest też określony atrybut scheme. Aby dopasować wiele subdomen, użyj gwiazdki (*), aby dopasować zero lub więcej znaków w hoście. Na przykład host *.google.com pasuje do www.google.com, .google.com i developer.google.com.

Gwiazdka musi być pierwszym znakiem atrybutu host. Na przykład host google.co.* jest nieprawidłowy, ponieważ symbol wieloznaczny nie jest pierwszym znakiem.

Uwaga: w przeciwieństwie do formalnego RFC podczas dopasowywania nazw hostów w ramach platformy Androida rozróżniana jest wielkość liter. Z tego względu nazwy hostów zawsze podawaj małymi literami.

android:port
Część portu w urzędzie URI. Ten atrybut ma znaczenie tylko wtedy, gdy filtr zawiera też atrybuty scheme i host.
android:path
android:pathPrefix
android:pathSuffix
android:pathPattern
android:pathAdvancedPattern
Część ścieżki identyfikatora URI, która musi się zaczynać od /. Atrybut path określa pełną ścieżkę, która jest dopasowywana do pełnej ścieżki w obiekcie Intent. Atrybut pathPrefix określa częściową ścieżkę dopasowywaną tylko do początkowej części ścieżki w obiekcie Intent.

Atrybut pathSuffix jest dopasowywany dokładnie do końcowej części ścieżki w obiekcie Intent. Ten atrybut nie musi zaczynać się znakiem /. Atrybut pathPattern określa pełną ścieżkę, która jest dopasowywana do pełnej ścieżki w obiekcie Intent, ale może zawierać te symbole wieloznaczne:

  • Gwiazdka (*) odpowiada sekwencji od 0 do wielu wystąpień bezpośrednio poprzedzającego znak.
  • Kropka z gwiazdką (.*) odpowiada dowolnej sekwencji od 0 do wielu znaków.

Atrybut pathAdvancedPattern określa pełną ścieżkę, która jest dopasowywana do pełnej ścieżki obiektu Intent i obsługuje te wzorce podobne do wyrażeń regularnych:

  • Kropka (.) odpowiada dowolnemu znakowi.
  • Zestaw ([...]) odpowiada zakresom znaków. Na przykład [0-5] odpowiada pojedynczej cyfrze z zakresu od 0 do 5 , ale nie zawiera cyfr od 6 do 9. [a-zA-Z] pasuje do dowolnej litery, niezależnie od wielkości liter. Zestawy obsługują też modyfikator ^ „nie”.
  • Modyfikator gwiazdki (*) pasuje do poprzedniego wzorca co najmniej 0 razy.
  • Modyfikator plusa (+) co najmniej raz pasuje do poprzedniego wzorca.
  • Modyfikator zakresu ({...}) określa, ile razy wzorzec może się zgadzać.
Dopasowanie pathAdvancedPattern to implementacja oceny, w której dopasowywanie odbywa się w czasie rzeczywistym do wzorca bez obsługi śledzenia wstecznego.

Ponieważ \ jest używany jako znak zmiany znaczenia podczas odczytywania ciągu znaków z kodu XML, zanim zostanie on przetworzony jako wzorzec, trzeba będzie podwójnie zmienić znaczenie ciągu. Na przykład literał * jest zapisany jako \\*, a literał \ – jako \\\. Przypomina to sposób, w jaki wpisujesz ciąg znaków w kodzie Javy.

Więcej informacji o tych 5 typach wzorców znajdziesz w opisach PATTERN_LITERAL, PATTERN_PREFIX, PATTERN_SIMPLE_GLOB, PATTERN_SUFFIX i PATTERN_ADVANCED_GLOB w klasie PatternMatcher.

Te atrybuty mają znaczenie tylko wtedy, gdy w filtrze zostały też określone atrybuty scheme i host.

Wersje pathSuffix i pathAdvancedPattern zostały wprowadzone w interfejsie API na poziomie 31.

android:mimeType
Typ multimediów MIME, na przykład image/jpeg lub audio/mpeg4-generic. Podtypem może być symbol wieloznaczny z gwiazdką (*), który wskazuje, że pasuje dowolny podtyp.

Często filtr intencji deklaruje element <data>, który zawiera tylko atrybut android:mimeType.

Uwaga: w przeciwieństwie do formalnych typów MIME w standardzie RFC podczas dopasowywania typów MIME w platformie Androida wielkość liter ma znaczenie. Dlatego zawsze określaj typy MIME, używając małych liter.

wprowadzone w:
Poziom API 1
zobacz też:
<action>
<category>