- 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 ein Datentyp, für den das Attribut
mimeType
, ein URI oder sowohl ein Datentyp als auch ein URI verwendet werden. Ein URI wird durch separate Attribute für die einzelnen Teile angegeben:<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 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 das Attributport
und alle Pfadattribute ignoriert.
Alle
<data>
-Elemente im selben<intent-filter>
-Element gehören zum selben 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>
einfügen, um mehrere Datenoptionen zur Verfügung zu stellen. Keines der Attribute hat Standardwerte.Informationen zur Funktionsweise von Intent-Filtern, einschließlich der Regeln für den Abgleich von Intent-Objekten mit Filtern, finden Sie in der Manifestdatei unter Intents und Intent-Filter und Intent-Filter.
- Wenn für den Intent-Filter kein
- Attribute:
android:scheme
- Der Schemateil eines URI. Dies ist das mindestens erforderliche Attribut für die Angabe eines URI. Für den Filter muss mindestens ein
scheme
-Attribut festgelegt sein oder keines der anderen URI-Attribute ist aussagekräftig.Ein Schema wird ohne nachgestellten Doppelpunkt angegeben, z. B.
http
statthttp:
.Wenn für den Filter ein Datentyp (mit dem Attribut
mimeType
), aber kein Schema festgelegt ist, werden die Schemascontent:
undfile:
angenommen.Hinweis: Beim Schemaabgleich im Android-Framework wird im Gegensatz zum RFC zwischen Groß- und Kleinschreibung unterschieden. Geben Sie daher Schemas immer mit Kleinbuchstaben an.
android:host
-
Der Hostteil einer URI-Berechtigung. Dieses Attribut ist bedeutungslos, wenn nicht auch ein
scheme
-Attribut für den Filter angegeben wird. Wenn Sie mehrere Subdomains abgleichen möchten, verwenden Sie ein Sternchen (*
), um null oder mehr Zeichen im Host abzugleichen. Der Host*.google.com
stimmt beispielsweise mitwww.google.com
,.google.com
unddeveloper.google.com
überein.Das Sternchen muss das erste Zeichen des Hostattributs sein. Der Host
google.co.*
ist beispielsweise ungültig, da der Sternchenplatzhalter nicht das erste Zeichen ist.Hinweis: Beim Hostnamenabgleich im Android-Framework wird im Gegensatz zum formalen RFC zwischen Groß- und Kleinschreibung unterschieden. Geben Sie daher Hostnamen immer in Kleinbuchstaben an.
android:port
- Der Portteil einer URI-Zertifizierungsstelle. Dieses Attribut ist nur sinnvoll, wenn auch die Attribute
scheme
undhost
für den Filter angegeben werden. android:path
android:pathPrefix
android:pathSuffix
android:pathPattern
android:pathAdvancedPattern
- Der Pfadteil eines URI, der mit
/
beginnen muss. Das Attributpath
gibt einen vollständigen Pfad an, der mit dem vollständigen Pfad in einemIntent
-Objekt abgeglichen wird. Das AttributpathPrefix
gibt einen Teilpfad an, der nur mit dem Anfangsteil des Pfads imIntent
-Objekt abgeglichen wird.Das Attribut
pathSuffix
wird genau mit dem letzten Teil des Pfads im ObjektIntent
abgeglichen. Dieses Attribut muss nicht mit dem Zeichen/
beginnen. Das AttributpathPattern
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 vorangehenden Zeichens. - Ein Punkt, auf den ein Sternchen (
.*
) folgt, entspricht einer beliebigen Sequenz von null bis viele Zeichen.
Das Attribut
pathAdvancedPattern
gibt einen vollständigen Pfad an, der mit dem vollständigen Pfad desIntent
-Objekts abgeglichen wird. Es unterstützt die folgenden Regex-ähnlichen Muster:-
Ein Punkt (
.
) entspricht einem beliebigen Zeichen. -
Ein Satz (
[...]
) gleicht Zeichenbereiche ab. Beispielsweise entspricht[0-5]
einer einzelnen Ziffer von 0 bis 5 , aber nicht von 6 bis 9.[a-zA-Z]
entspricht jedem Buchstaben, unabhängig von der Groß-/Kleinschreibung. Sets unterstützen auch den^
-Modifikator „not“. -
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 übereinstimmen kann.
pathAdvancedPattern
-Matcher ist eine Bewertungsimplementierung, bei der das Muster in Echtzeit und ohne Backtracking-Unterstützung abgeglichen wird.Da
\
beim Lesen aus XML als Escape-Zeichen verwendet wird, müssen Sie vor dem Parsen als Muster ein doppeltes Escapezeichen verwenden. Ein literales*
wird beispielsweise als\\*
und ein literales\
als\\\
geschrieben. Dies entspricht dem, was Sie beim Erstellen des Strings in Java-Code schreiben.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 sinnvoll, wenn auch die Attribute
scheme
undhost
für den Filter angegeben sind.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 ein Untertyp übereinstimmt.Häufig wird über einen Intent-Filter ein
<data>
-Element deklariert, das nur das Attributandroid:mimeType
enthält.Hinweis: Beim MIME-Typabgleich im Android-Framework wird im Gegensatz zu formalen RFC-MIME-Typen zwischen Groß- und Kleinschreibung unterschieden. Geben Sie MIME-Typen daher immer mit Kleinbuchstaben an.
- 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-06-21 (UTC).
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"Benötigte Informationen nicht gefunden"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"Zu umständlich/zu viele Schritte"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"Nicht mehr aktuell"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"Problem mit der Übersetzung"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"Problem mit Beispielen/Code"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"Sonstiges"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"Leicht verständlich"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"Mein Problem wurde gelöst"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"Sonstiges"
}]