- Składnia:
- Jeśli tag danych jest bezpośrednim elementem podrzędnym tagu
<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" />
Jeśli tag danych jest bezpośrednim elementem podrzędnym tagu<uri-relative-filter-group>:
<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" />
- zawarte w:
-
<intent-filter><uri-relative-filter-group> - description:
- Dodaje specyfikację danych do filtra intencji. Specyfikacja jest typem danych, który używa atrybutu
mimeType, identyfikatora URI lub zarówno typu danych, jak i identyfikatora URI. Identyfikator URI jest określany przez oddzielne atrybuty dla każdej jego części:<scheme>://<host>:<port>[<path>|<pathPrefix>|<pathPattern>|<pathAdvancedPattern>|<pathSuffix>]Te atrybuty określające format identyfikatora URI są opcjonalne, ale też wzajemnie od siebie zależne:
- Jeśli w filtrze intencji nie określono
scheme, wszystkie pozostałe atrybuty URI są ignorowane. - Jeśli w filtrze nie określono
host, atrybutporti wszystkie atrybuty ścieżki są ignorowane.
Wszystkie elementy
<data>zawarte w tym samym elemencie<intent-filter>przyczyniają się do tego samego filtra. Na przykład ta specyfikacja filtra:<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>
jest równoważna tej:
<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>
W elemencie
<data>możesz umieścić dowolną liczbę elementów<intent-filter>, aby zapewnić mu wiele opcji danych. Żaden z jego atrybutów nie ma wartości domyślnych.Informacje o działaniu filtrów intencji, w tym reguły dopasowywania obiektów intencji do filtrów, znajdziesz w artykułach Intencje i filtry intencji oraz w sekcji Filtry intencji w omówieniu pliku manifestu.
- Jeśli w filtrze intencji nie określono
- atrybuty:
android:scheme- Część schematu identyfikatora URI. Jest to minimalny atrybut niezbędny do określenia identyfikatora URI. W przypadku filtra musi być ustawiony co najmniej 1 atrybut
scheme. W przeciwnym razie żaden z pozostałych atrybutów URI nie będzie miał znaczenia.Schemat jest określony bez dwukropka na końcu, np.
httpzamiasthttp:.Jeśli filtr ma ustawiony typ danych (za pomocą atrybutu
mimeType), ale nie ma schematu, zakłada się schematycontent:ifile:.Uwaga: dopasowywanie schematów w platformie Androida uwzględnia wielkość liter, w przeciwieństwie do RFC. Dlatego zawsze podawaj schematy, używając małych liter.
android:host-
Część hosta urzędu protokołu URI. Ten atrybut nie ma znaczenia, chyba że dla filtra określono też atrybut
scheme. Aby dopasować wiele subdomen, użyj gwiazdki (*), która zastępuje zero lub więcej znaków w hoście. Na przykład host*.google.compasuje dowww.google.com,.google.comideveloper.google.com.Gwiazdka musi być pierwszym znakiem atrybutu host. Na przykład host
google.co.*jest nieprawidłowy, ponieważ symbol wieloznaczny gwiazdki nie jest pierwszym znakiem.Uwaga: dopasowywanie nazw hostów w platformie Android uwzględnia wielkość liter, w przeciwieństwie do formalnego RFC. Dlatego nazwy hostów należy zawsze podawać małymi literami.
android:port- Część portu w urzędzie protokołu URI. Ten atrybut ma znaczenie tylko wtedy, gdy dla filtra są też określone atrybuty
schemeihost. android:pathandroid:pathPrefixandroid:pathSuffixandroid:pathPatternandroid:pathAdvancedPattern- Ścieżka w identyfikatorze URI, która musi zaczynać się od znaku
/. Atrybutpathokreśla pełną ścieżkę, która jest dopasowywana do pełnej ścieżki w obiekcieIntent. AtrybutpathPrefixokreśla ścieżkę częściową, która jest dopasowywana tylko do początkowej części ścieżki w obiekcieIntent.Atrybut
pathSuffixjest dokładnie dopasowywany do końcowej części ścieżki w obiekcieIntenti nie musi zaczynać się od znaku/.Atrybut
pathPatternokreśla pełną ścieżkę, która jest dopasowywana do pełnej ścieżki w obiekcieIntent, ale może zawierać te symbole wieloznaczne:- Kropka (
.) odpowiada dowolnemu znakowi. -
Gwiazdka (
*) odpowiada sekwencji od zera do wielu wystąpień znaku bezpośrednio poprzedzającego. -
Kropka, po której następuje gwiazdka (
.*), odpowiada dowolnej sekwencji od zera do wielu znaków.
Atrybut
pathAdvancedPatternokreśla pełną ścieżkę, która jest dopasowywana do pełnej ścieżki obiektuIntenti obsługuje te wzorce podobne do wyrażeń regularnych:-
Kropka (
.) odpowiada dowolnemu znakowi. -
Zestaw (
[...]) pasuje do zakresów znaków. Na przykład[0-5]odpowiada pojedynczej cyfrze z zakresu od 0 do 5 , ale nie z zakresu od 6 do 9.[a-zA-Z]pasuje do dowolnej litery, niezależnie od wielkości. Zbiory obsługują też modyfikator „not”^. -
Modyfikator gwiazdki (
*) dopasowuje poprzedni wzorzec zero lub więcej razy. -
Modyfikator plus (
+) dopasowuje poprzedni wzorzec co najmniej raz. -
Modyfikator zakresu (
{...}) określa, ile razy wzorzec może być dopasowany.
pathAdvancedPatternto implementacja oceny, w której dopasowywanie odbywa się do wzorca w czasie rzeczywistym bez obsługi wycofywania.Ponieważ znak
\jest używany jako znak zmiany znaczenia, gdy ciąg znaków jest odczytywany z pliku XML, przed jego przeanalizowaniem jako wzorca musisz zastosować podwójną zmianę znaczenia. Na przykład znak*jest zapisywany jako\\*, a znak\jako\\\\. Jest to podobne do tego, co piszesz podczas tworzenia ciągu znaków w kodzie Java.Więcej informacji o tych 5 rodzajach wzorców znajdziesz w opisach
PATTERN_LITERAL,PATTERN_PREFIX,PATTERN_SIMPLE_GLOB,PATTERN_SUFFIXiPATTERN_ADVANCED_GLOBw klasiePatternMatcher.Te atrybuty mają znaczenie tylko wtedy, gdy dla filtra określono też atrybuty
schemeihost.pathSuffixipathAdvancedPatternzostały wprowadzone na poziomie API 31. - Kropka (
android:fragmentandroid:fragmentPrefixandroid:fragmentSuffixandroid:fragmentPatternandroid:fragmentAdvancedPattern-
Element dopasowujący fragment identyfikatora URI. Nie dodawaj prefiksu
#. Powyżej znajdziesz znaczenie każdego atrybutu i wzorce, które są w nim dozwolone.Aby dopasować znaki, które są zwykle kodowane w identyfikatorze URI, uwzględnij w wartości atrybutu formę nieprzetworzoną (niezakodowaną). Na przykład
<data android:fragment="test!" />pasuje do#test!i#test%21.Wprowadzono na poziomie API 35.
android:queryandroid:queryPrefixandroid:querySuffixandroid:queryPatternandroid:queryAdvancedPattern-
Wzorzec parametru zapytania URI (i opcjonalnie wartości). Możesz na przykład dopasować identyfikatory URI kończące się ciągiem
?param=valuedo ciągu<data android:query="param=value" />. Nie dodawaj prefiksu?. Powyżej znajdziesz znaczenie i wzorce dozwolone w przypadku każdego atrybutu.Aby dopasować znaki, które są zwykle kodowane w URI, uwzględnij w wartości atrybutu formę surową (niezakodowaną). Na przykład
<data android:query="test!" />pasuje do?test!i?test%21.Wprowadzono na poziomie API 35.
android:mimeType- Typ MIME, np.
image/jpeglubaudio/mpeg4-generic. Podtyp może być symbolem wieloznacznym w postaci gwiazdki (*), co oznacza, że pasuje dowolny podtyp.Często filtr intencji deklaruje element
<data>, który zawiera tylko atrybutandroid:mimeType.Uwaga: dopasowywanie typów MIME w platformie Android uwzględnia wielkość liter, w przeciwieństwie do formalnych typów MIME RFC. Dlatego zawsze określaj typy MIME małymi literami.
- wprowadzony w:
- Poziom API 1
- Zobacz też:
<action><category>
<dane>
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: 2026-02-23 UTC.
[null,null,["Ostatnia aktualizacja: 2026-02-23 UTC."],[],[]]