- Syntax:
<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" />
- enthalten in:
<intent-filter>
- description:
- Fügt einem Intent-Filter eine Datenspezifikation hinzu. Die Spezifikation ist
einen Datentyp mit der
mimeType
-Attribut, einen URI oder sowohl einen Datentyp als auch einen URI. URIs werden durch separate Attribute für die einzelnen Teile:<scheme>://<host>:<port>[<path>|<pathPrefix>|<pathPattern>|<pathAdvancedPattern>|<pathSuffix>]
Die folgenden Attribute, die das URI-Format angeben, sind optional, hängen aber auch voneinander ab:
- Wenn ein
scheme
nicht für den Intent-Filter angegeben ist, werden alle anderen URI-Attribute ignoriert. - Wenn ein
host
für den Filter nicht angegeben ist, werden das Attributport
und alle Pfadattribute ignoriert.
Alle
<data>
-Elemente, die im selben<intent-filter>
-Element zu über denselben Filter. Beispielsweise würde die folgende Filterspezifikation:<intent-filter . . . > <data android:scheme="something" android:host="project.example.com" /> ... </intent-filter>
entspricht diesem:
<intent-filter . . . > <data android:scheme="something" /> <data android:host="project.example.com" /> ... </intent-filter>
Sie können beliebig viele
<data>
-Elemente in eine<intent-filter>
, um mehrere Daten zu erhalten Optionen. Keines der Attribute hat Standardwerte.Informationen zur Funktionsweise von Intent-Filtern, einschließlich der Regeln für Intent-Objekte mit Filtern abgeglichen, siehe Intents und Intent-Filter und die Intent-Filter in der Übersicht über die Manifestdatei.
- Wenn ein
- Attribute:
android:scheme
- Der Schemateil eines URI. Dies ist das mindestens erforderliche Attribut
und gibt einen URI an. Es muss mindestens ein
scheme
-Attribut festgelegt werden oder keines der anderen URI-Attribute aussagekräftig ist.Ein Schema wird ohne den abschließenden Doppelpunkt angegeben, z. B.
http
statthttp:
.Wenn für den Filter ein Datentyp festgelegt ist (mithilfe der
mimeType
-Anweisung Attribut) aber kein Schema haben, sind die Schemascontent:
undfile:
was davon ausgeht.Hinweis: Der Schemaabgleich im Android-Framework ist Groß- und Kleinschreibung zu beachten, im Gegensatz zum RFC. Geben Sie daher immer Schemas an mit Kleinbuchstaben.
android:host
-
Der Hostteil einer URI-Befugnis. Dieses Attribut ist bedeutungslos
es sei denn ein
scheme
-Attribut wird auch für den Filter angegeben. Wenn Sie mehrere Subdomains abgleichen möchten, verwenden Sie ein Sternchen (*
) entspricht null oder mehr Zeichen im Host. Beispielsweise stimmt der Host*.google.com
mitwww.google.com
,.google.com
unddeveloper.google.com
.Das Sternchen muss das erste Zeichen des Hostattributs sein. Beispiel: Der Host
google.co.*
ist ungültig, da der Sternchenplatzhalter nicht das erste Zeichen ist.Hinweis: Der Hostnamenabgleich im Android-Framework ist Groß- und Kleinschreibung zu beachten, im Gegensatz zum formalen RFC. Geben Sie daher immer Hostnamen in Kleinbuchstaben.
android:port
- Der Portteil einer URI-Zertifizierungsstelle. Dieses Attribut ist nur aussagekräftig
wenn
scheme
undhost
-Attribute werden auch angegeben für den Filter. android:path
android:pathPrefix
android:pathSuffix
android:pathPattern
android:pathAdvancedPattern
- Der Pfadteil eines URI, der mit
/
beginnen muss. Das Attributpath
gibt eine vollständige Pfad, der mit dem vollständigen Pfad in einemIntent
-Objekt abgeglichen wird. Die Das AttributpathPrefix
gibt einen Teilpfad an, der mit dem nur den ersten Teil des Pfads imIntent
-Objekt.Die Das Attribut
pathSuffix
wird genau mit dem Endteil des Pfads imIntent
-Objekt enthält. Dieses Attribut muss nicht mit dem/
-Zeichen beginnen. Die Das AttributpathPattern
gibt einen vollständigen Pfad an, der mit dem vollständigen Pfad abgeglichen wird imIntent
-Objekt, kann aber die folgenden Platzhalter enthalten:- Ein Sternchen (
*
) entspricht einer Sequenz von null bis viele Vorkommnisse von das unmittelbar vorangehende Zeichen. - Ein Punkt, gefolgt von einem Sternchen (
.*
) entspricht einer beliebigen Sequenz von Null bis viele Zeichen.
Das Attribut
pathAdvancedPattern
gibt einen vollständigen Pfad an, der mit dem Attribut vollständigen Pfad desIntent
-Objekts und unterstützt die folgenden Regex-ähnlichen Muster:-
Ein Punkt (
.
) entspricht einem beliebigen Zeichen. -
Ein Satz (
[...]
) gleicht Zeichenbereiche ab. Beispiel:[0-5]
entspricht einer einzelnen Ziffer von 0 bis 5, aber nicht zwischen 6 und 9.[a-zA-Z]
entspricht jedem Buchstaben, unabhängig von der Groß-/Kleinschreibung. Sets unterstützen auch das Wort „nicht“^
-Modifikator. -
Das Sternchen (
*
)-Modifikator entspricht kein- oder öfter dem vorherigen Muster. -
Der Plus-Modifikator (
+
) entspricht ein- oder mehrmals dem vorherigen Muster. -
Der Bereichsmodifikator (
{...}
) gibt an, wie oft ein Muster mit denen Sie übereinstimmen können.
pathAdvancedPattern
-Matcher ist eine Bewertungsimplementierung, bei der die Übereinstimmung mit dem Muster in Echtzeit und ohne Backtracking-Unterstützung durchgeführt.Weil
\
beim Lesen des Strings als Escape-Zeichen verwendet wird aus XML entfernt, bevor es als Muster geparst wird, müssen Sie ein doppeltes Escapezeichen verwenden. Beispielsweise wird ein literales*
als\\*
geschrieben und ein Das Literal\
wird als\\\
geschrieben. Das ist so, als würden Sie bei der Konstruktion des Strings in Java-Code.Weitere Informationen zu diesen fünf Arten von Mustern finden Sie in den Beschreibungen der
PATTERN_LITERAL
,PATTERN_PREFIX
,PATTERN_SIMPLE_GLOB
,PATTERN_SUFFIX
undPATTERN_ADVANCED_GLOB
imPatternMatcher
.Diese Attribute sind nur sinnvoll, wenn die
scheme
undhost
werden auch für den Filter angegeben.pathSuffix
undpathAdvancedPattern
wurden in API-Level 31 eingeführt. - Ein Sternchen (
android:mimeType
- Ein MIME-Medientyp, z. B.
image/jpeg
oderaudio/mpeg4-generic
. Als Untertyp kann der Sternchenplatzhalter (*
) verwendet werden, um anzugeben, dass eine beliebige dass der Untertyp übereinstimmt.Häufig wird durch einen Intent-Filter ein
<data>
-Element deklariert, das folgende Elemente enthält: nur das Attributandroid:mimeType
.Hinweis: Der MIME-Typ-Abgleich im Android-Framework ist Groß- und Kleinschreibung unterscheiden, im Gegensatz zu den formalen RFC MIME-Typen. Daher sollten Sie immer MIME-Typen mit Kleinbuchstaben angeben.
- eingeführt in:
- API-Level 1
- Siehe auch:
<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-08-22 (UTC).
[null,null,["Zuletzt aktualisiert: 2024-08-22 (UTC)."],[],[]]