- syntax:
- Wenn das Daten-Tag das unmittelbare untergeordnete Element eines
<intent-filter>
ist:
<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" />
Wenn das Daten-Tag das unmittelbare untergeordnete Element eines<uri-relative-filter-group>
ist:
<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" />
- enthalten in:
-
<intent-filter>
<uri-relative-filter-group>
- description:
- Fügt einem Intent-Filter eine Datenspezifikation hinzu. Die Spezifikation ist ein Datentyp, der das
mimeType
-Attribut, einen URI oder sowohl einen Datentyp als auch einen URI verwendet. Ein URI wird durch separate Attribute für jeden seiner Teile angegeben:<scheme>://<host>:<port>[<path>|<pathPrefix>|<pathPattern>|<pathAdvancedPattern>|<pathSuffix>]
Diese Attribute, die das URI-Format angeben, sind optional, aber auch voneinander abhängig:
- Wenn für den Intent-Filter kein
scheme
angegeben ist, werden alle anderen URI-Attribute ignoriert. - Wenn für den Filter kein
host
angegeben ist, werden dasport
-Attribut und alle Pfadattribute ignoriert.
Alle
<data>
-Elemente, die sich im selben<intent-filter>
-Element befinden, tragen zum selben Filter bei. So sieht beispielsweise die folgende Filterspezifikation aus:<intent-filter . . . > <data android:scheme="something" android:host="project.example.com" /> ... </intent-filter>
ist gleichbedeutend mit:
<intent-filter . . . > <data android:scheme="something" /> <data android:host="project.example.com" /> ... </intent-filter>
Sie können beliebig viele
<data>
-Elemente in ein<intent-filter>
-Element einfügen, um ihm mehrere Datenoptionen zu geben. Keines der Attribute hat Standardwerte.Informationen zur Funktionsweise von Intent-Filtern, einschließlich der Regeln für die Übereinstimmung von Intent-Objekten mit Filtern, finden Sie unter Intents und Intent-Filter und im Abschnitt Intent-Filter in der Übersicht über Manifestdateien.
- Wenn für den Intent-Filter kein
- attributes:
android:scheme
- Der Schemateil eines URI. Dies ist das Mindestattribut, das für die Angabe eines URI erforderlich ist. Für den Filter muss mindestens ein
scheme
-Attribut festgelegt sein, da sonst keines der anderen URI-Attribute sinnvoll ist.Ein Schema wird ohne das abschließende Doppelpunktzeichen angegeben, z. B.
http
anstelle vonhttp:
.Wenn für den Filter ein Datentyp festgelegt ist (mit dem Attribut
mimeType
), aber kein Schema, werden die Schemascontent:
undfile:
vorausgesetzt.Hinweis: Im Android-Framework ist die Schemaabgleichung im Gegensatz zum RFC case-sensitive. Geben Sie daher immer Schemas in Kleinbuchstaben an.
android:host
-
Der Hostteil einer URI-Autorität. Dieses Attribut hat nur dann einen Sinn, wenn für den Filter auch ein
scheme
-Attribut angegeben ist. Wenn Sie mehrere Subdomains abgleichen möchten, verwenden Sie ein Sternchen (*
), um null oder mehr Zeichen im Host abzugleichen. Beispiel: Der Host*.google.com
stimmt mitwww.google.com
,.google.com
unddeveloper.google.com
überein.Der Stern muss das erste Zeichen des Hostattributs sein. Der Host
google.co.*
ist beispielsweise ungültig, da der Sternchen-Platzhalter nicht das erste Zeichen ist.Hinweis: Im Android-Framework wird beim Abgleich von Hostnamen im Gegensatz zum formellen RFC die Groß- und Kleinschreibung berücksichtigt. Geben Sie daher immer Hostnamen in Kleinbuchstaben an.
android:port
- Der Portteil einer URI-Berechtigung. Dieses Attribut ist nur dann sinnvoll, wenn auch die Attribute
scheme
undhost
für den Filter angegeben sind. android:path
android:pathPrefix
android:pathSuffix
android:pathPattern
android:pathAdvancedPattern
- Der Pfadteil eines URI, der mit einem
/
beginnen muss. Daspath
-Attribut gibt einen vollständigen Pfad an, der mit dem vollständigen Pfad in einemIntent
-Objekt abgeglichen wird. DaspathPrefix
-Attribut gibt einen Teilpfad an, der nur mit dem Anfangsteil des Pfads imIntent
-Objekt abgeglichen wird.Das
pathSuffix
-Attribut wird genau mit dem Endteil des Pfads imIntent
-Objekt abgeglichen. Dieses Attribut muss nicht mit dem Zeichen/
beginnen. DaspathPattern
-Attribut gibt einen vollständigen Pfad an, der mit dem vollständigen Pfad imIntent
-Objekt abgeglichen wird. Es kann jedoch die folgenden Platzhalter enthalten:- Ein Sternchen (
*
) entspricht einer Folge von null bis vielen Vorkommen des unmittelbar vorausgehenden Zeichens. - Ein Punkt gefolgt von einem Sternchen (
.*
) entspricht einer beliebigen Zeichenfolge mit null bis vielen Zeichen.
Das
pathAdvancedPattern
-Attribut gibt einen vollständigen Pfad an, der mit dem vollständigen Pfad desIntent
-Objekts abgeglichen wird. Es unterstützt die folgenden regulären Ausdrucksmuster:-
Ein Punkt (
.
) entspricht einem beliebigen Zeichen. -
Ein Satz (
[...]
) entspricht einem Zeichenbereich. Beispiel:[0-5]
stimmt beispielsweise mit einer einzelnen Ziffer zwischen 0 und 5 überein , aber nicht mit 6 bis 9.[a-zA-Z]
stimmt mit einem beliebigen Buchstaben überein, unabhängig von der Groß- und Kleinschreibung. Für Sets wird auch der Modifikator „nicht“^
unterstützt. -
Der Modifikator „Sternchen“ (
*
) entspricht null oder mehrmals dem vorangehenden Muster. -
Der Modifizierer „Plus“ (
+
) entspricht dem vorangehenden Muster einmal oder mehrmals. -
Mit dem Modifikator „Bereich“ (
{...}
) wird angegeben, wie oft ein Muster übereinstimmen kann.
pathAdvancedPattern
-Abgleich ist eine Bewertungsimplementierung, bei der der Abgleich in Echtzeit ohne Backtracking-Unterstützung mit dem Muster erfolgt.Da
\
als Escape-Zeichen verwendet wird, wenn der String aus XML gelesen wird, bevor er als Muster geparst wird, müssen Sie das Zeichen doppelt maskieren. Beispiel: Das Literal*
wird als\\*
geschrieben und das Literal\
als\\\
. Das entspricht dem, was Sie schreiben, wenn Sie den String in Java-Code erstellen.Weitere Informationen zu diesen fünf Arten von Mustern finden Sie in den Beschreibungen von
PATTERN_LITERAL
,PATTERN_PREFIX
,PATTERN_SIMPLE_GLOB
,PATTERN_SUFFIX
undPATTERN_ADVANCED_GLOB
in der KlassePatternMatcher
.Diese Attribute sind nur dann sinnvoll, wenn auch die Attribute
scheme
undhost
für den Filter angegeben sind.pathSuffix
undpathAdvancedPattern
wurden mit API-Level 31 eingeführt. - Ein Sternchen (
android:fragment
android:fragmentPrefix
android:fragmentSuffix
android:fragmentPattern
android:fragmentAdvancedPattern
-
Ein Abgleich für ein URI-Fragment. Geben Sie nicht das Präfix
#
an. Die Bedeutung und zulässigen Muster für die einzelnen Attribute finden Sie oben.Wenn Sie Zeichen abgleichen möchten, die normalerweise URI-codiert sind, geben Sie die Rohform (nicht codierte Form) in den Attributwert ein. Beispiel:
<data android:fragment="test!" />
führt zu Übereinstimmungen mit#test!
und#test%21
.Einführung in API-Ebene 35.
android:query
android:queryPrefix
android:querySuffix
android:queryPattern
android:queryAdvancedPattern
-
Ein Abgleich für einen URI-Suchparameter (und optional einen Wert). So können Sie beispielsweise URIs, die auf
?param=value
enden, mit<data android:query="param=value" />
abgleichen. Geben Sie nicht das Präfix?
an. Die Bedeutung und zulässigen Muster für jedes Attribut finden Sie oben.Wenn Sie Zeichen abgleichen möchten, die normalerweise URI-codiert sind, geben Sie die Rohform (nicht codierte Form) im Attributwert an. Beispiel:
<data android:query="test!" />
führt zu Übereinstimmungen mit?test!
und?test%21
.Einführung in API-Ebene 35.
android:mimeType
- Ein MIME-Medientyp wie
image/jpeg
oderaudio/mpeg4-generic
. Der Untertyp kann der Sternchen-Platzhalter (*
) sein, um anzugeben, dass mit jedem Untertyp übereinstimmt werden soll.Häufig wird in einem Intent-Filter ein
<data>
-Element deklariert, das nur dasandroid:mimeType
-Attribut enthält.Hinweis: Im Android-Framework ist die MIME-Typ-Übereinstimmung im Gegensatz zu formellen RFC-MIME-Typen nicht groß- und kleinschreibungsempfindlich. Geben Sie MIME-Typen daher immer in Kleinbuchstaben an.
- eingeführt in:
- API-Level 1
- Weitere Informationen:
<action>
<category>
Alle Inhalte und Codebeispiele auf dieser Seite unterliegen den Lizenzen wie im Abschnitt Inhaltslizenz beschrieben. Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
Zuletzt aktualisiert: 2024-12-02 (UTC).
[null,null,["Zuletzt aktualisiert: 2024-12-02 (UTC)."],[],[]]