- 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
typu danych za pomocą funkcji
mimeType
identyfikator, identyfikator URI albo typ danych i identyfikator URI. Identyfikator URI jest określany oddzielnym ciągiem atrybutów poszczególnych 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
scheme
nie zostanie określony dla filtra intencji, wszystkie pozostałe atrybuty identyfikatora URI zostaną zignorowane. - Jeśli
host
nie zostanie określony dla filtra, atrybutport
i wszystkie atrybuty ścieżki zostaną zignorowane.
Wszystkie elementy
<data>
zawarte w tym samym<intent-filter>
element przyczynia się do 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>
Wewnątrz elementu
<data>
można umieścić dowolną liczbę<intent-filter>
, aby dodać wiele danych . Żaden z jego atrybutów nie ma wartości domyślnych.Informacje o działaniu filtrów intencji, w tym o regułach działania obiektów intencji są dopasowane do filtrów, patrz sekcja Intencje Filtry intencji oraz Filtry intencji w omówieniu pliku manifestu.
- Jeśli
- atrybuty:
android:scheme
- Część schematu identyfikatora URI. Jest to minimalny podstawowy atrybut
podając identyfikator URI. Musisz ustawić co najmniej 1 atrybut
scheme
dla filtra lub żaden inny atrybut identyfikatora URI nie jest przydatny.Schemat jest określony bez dwukropka na końcu, np.
http
, a niehttp:
.Jeśli filtr ma ustawiony typ danych (za pomocą funkcji
mimeType
), ale bez schematu, schematycontent:
ifile:
są jak domniemana.Uwaga: dopasowywanie schematów na platformie Androida to (z uwzględnieniem wielkości liter, inaczej niż w 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 atrybut
scheme
jest także określony dla filtra. Aby dopasować wiele subdomen, użyj gwiazdki (*
), aby dopasuj zero lub więcej znaków w hoście. Na przykład host*.google.com
pasuje dowww.google.com
,.google.com
ideveloper.google.com
.Gwiazdka musi być pierwszym znakiem atrybutu host. Na przykład: Wartość
google.co.*
jest nieprawidłowa, ponieważ symbol wieloznaczny nie jest pierwszym znakiem.Uwaga: dopasowywanie nazw hostów w ramach platformy Androida to (z uwzględnieniem wielkości liter, inaczej niż w oficjalnym dokumencie RFC). W efekcie zawsze określaj, w nazwach hostów zapisanych małymi literami.
android:port
- Część portu w urzędzie URI. Ten atrybut ma znaczenie tylko
jeśli
scheme
i Atrybutyhost
są też określone dla użyj filtra. android:path
android:pathPrefix
android:pathSuffix
android:pathPattern
android:pathAdvancedPattern
- Część ścieżki identyfikatora URI, która musi się zaczynać od
/
. Atrybutpath
określa pełną dopasowywaną do pełnej ścieżki w obiekcieIntent
. AtrybutpathPrefix
określa częściową ścieżkę, do której pasuje tylko początkową część ścieżki w obiekcieIntent
.Atrybut
pathSuffix
jest ściśle dopasowany do końcowej części ścieżki w atrybucieIntent
, a ten atrybut nie musi zaczynać się od znaku/
. AtrybutpathPattern
określa pełną ścieżkę, która jest dopasowywana do pełnej w obiekcieIntent
, ale może zawierać te symbole wieloznaczne:- Gwiazdka (
*
) odpowiada sekwencji od 0 do wielu wystąpień bezpośrednio poprzedzający znak. - Kropka z gwiazdką (
.*
) odpowiada dowolnej sekwencji od zera do wielu znaków.
Atrybut
pathAdvancedPattern
określa pełną ścieżkę, która jest dopasowywana do pełna ścieżka obiektuIntent
i obsługuje następujące wzorce podobne do wyrażeń regularnych:-
Kropka (
.
) odpowiada dowolnemu znakowi. -
Zestaw (
[...]
) odpowiada zakresom znaków. Na przykład:[0-5]
odpowiada pojedynczemu cyfrom od 0 do 5, ale nie cyfrom od 6 do 9.[a-zA-Z]
odpowiada dowolnej literze, niezależnie od wielkości liter. Zestawy obsługują również wartość „nie” Modyfikator^
. -
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 wzór które mogą być takie same.
pathAdvancedPattern
to implementacja oceny, w której dopasowywanie odbywa się w czasie rzeczywistym w porównaniu z wzorcem, bez obsługi śledzenia wstecznego.Ponieważ
\
jest używany jako znak zmiany znaczenia podczas odczytywania ciągu z kodu XML, zanim zostanie on przetworzony jako wzorzec, musisz dwukrotnie zastosować zmianę znaczenia. Na przykład literał*
jest zapisany jako\\*
, a literał\
jest zapisany jako\\\
. Tak jak wtedy, gdy piszesz do utworzenia ciągu w kodzie Java.Więcej informacji o tych 5 typach wzorców znajdziesz w opisach
PATTERN_LITERAL
,PATTERN_PREFIX
,PATTERN_SIMPLE_GLOB
,PATTERN_SUFFIX
iPATTERN_ADVANCED_GLOB
w:PatternMatcher
zajęcia.Te atrybuty mają znaczenie tylko wtedy, gdy
scheme
ihost
dla filtra są też określone atrybuty.Wersje
pathSuffix
ipathAdvancedPattern
zostały wprowadzone w interfejsie API na poziomie 31. - Gwiazdka (
android:mimeType
- Typ multimediów MIME, na przykład
image/jpeg
lubaudio/mpeg4-generic
. Podtypem może być symbol wieloznaczny z gwiazdką (*
) wskazujący, że każdy dopasowania podtypu.Często filtr intencji deklaruje element
<data>
zawierający tylko atrybutandroid:mimeType
.Uwaga: dopasowanie typu MIME w środowisku Androida to rozróżniania wielkości liter w odróżnieniu od formalnych typów MIME w standardzie RFC. W związku z tym zawsze określ typy MIME używające małych liter.
- wprowadzone w:
- Poziom API 1
- zobacz też:
<action>
<category>
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2024-08-22 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 2024-08-22 UTC."],[],[]]