- 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, der das Attribut
mimeType
, 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>]
Die folgenden Attribute, die das URI-Format angeben, sind optional, aber auch gegenseitig 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 das Attributport
und alle Pfadattribute ignoriert.
Alle
<data>
-Elemente, die im selben<intent-filter>
-Element enthalten sind, tragen zum selben Filter bei. So sieht zum Beispiel die folgende Filterspezifikation aus:<intent-filter . . . > <data android:scheme="something" android:host="project.example.com" /> ... </intent-filter>
entspricht diesem Beispiel:
<intent-filter . . . > <data android:scheme="something" /> <data android:host="project.example.com" /> ... </intent-filter>
Sie können eine beliebige Anzahl von
<data>
-Elementen in einem<intent-filter>
-Element platzieren, um ihm 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 unter Intents und Intent-Filter und im Abschnitt Intent-Filter in der Übersicht über die Manifestdatei.
- Wenn für den Intent-Filter kein
- Attribute:
android:scheme
- Der Schemateil eines URI. Dies ist das unbedingt erforderliche Attribut zum Angeben eines URI. Für den Filter muss mindestens ein
scheme
-Attribut festgelegt sein. Andernfalls ist keines der anderen URI-Attribute aussagekräftig.Ein Schema wird ohne den abschließenden Doppelpunkt angegeben, z. B.
http
statthttp:
.Wenn für den Filter ein Datentyp festgelegt ist (mit dem Attribut
mimeType
), aber kein Schema, werden die Schemascontent:
undfile:
angenommen.Hinweis: Beim Schemaabgleich im Android-Framework wird im Gegensatz zum RFC zwischen Groß- und Kleinschreibung unterschieden. Geben Sie Schemas immer in Kleinbuchstaben an.
android:host
-
Der Hostteil einer URI-Zertifizierungsstelle. Dieses Attribut hat keine Bedeutung, es sei denn, für den Filter wurde auch ein
scheme
-Attribut angegeben. Verwenden Sie ein Sternchen (*
), um null oder mehr Zeichen im Host abzugleichen, um mehrere Subdomains 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, weil der Sternchenplatzhalter nicht das erste Zeichen ist.Hinweis: Beim Abgleich von Hostnamen im Android-Framework wird im Gegensatz zum formalen RFC zwischen Groß- und Kleinschreibung unterschieden. Geben Sie Hostnamen daher immer in Kleinbuchstaben an.
android:port
- Der Portteil einer URI-Zertifizierungsstelle. Dieses Attribut ist nur aussagekräftig, wenn die Attribute
scheme
undhost
auch 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. 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 ersten Teil des Pfads imIntent
-Objekt abgeglichen wird.Das Attribut
pathSuffix
wird genau mit dem Endteil 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 im ObjektIntent
abgeglichen wird. Es kann jedoch die folgenden Platzhalter enthalten:- Ein Sternchen (
*
) entspricht einer Abfolge von null bis vielen Vorkommen des unmittelbar vorangehenden Zeichens. - Ein Punkt gefolgt von einem Sternchen (
.*
) entspricht einer beliebigen Folge von null bis vielen Zeichen.
Das Attribut
pathAdvancedPattern
gibt einen vollständigen Pfad an, der mit dem vollständigen Pfad desIntent
-Objekts abgeglichen wird und die folgenden Regex-ähnlichen Muster unterstützt:-
Ein Punkt (
.
) entspricht einem beliebigen Zeichen. -
Ein Satz (
[...]
) entspricht Zeichenbereichen.[0-5]
entspricht beispielsweise einer einzelnen Ziffer von 0 bis 5 , aber nicht 6 bis 9.[a-zA-Z]
entspricht jedem Buchstaben, unabhängig von der Groß-/Kleinschreibung. Gruppen unterstützen auch den „not“-Modifikator „^
“. -
Der Modifikator des Sternchens (
*
) entspricht null- oder mehrmals dem vorangehenden Muster. -
Der Plus-Modifikator (
+
) stimmt einmal oder mehrmals mit dem vorherigen Muster überein. -
Der Bereichsmodifikator (
{...}
) gibt an, wie oft ein Muster übereinstimmen kann.
pathAdvancedPattern
-Matcher ist eine Bewertungsimplementierung, bei der der Abgleich mit dem Muster in Echtzeit ohne Backtracking-Unterstützung durchgeführt wird.Da
\
beim Lesen des Strings aus XML als Escape-Zeichen verwendet wird, muss vor dem Parsen als Muster eine doppelte Maskierung erfolgen. Ein Literal*
wird beispielsweise als\\*
und ein Literal\
als\\\
geschrieben. Das 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 aussagekräftig, wenn die Attribute
scheme
undhost
auch für den Filter angegeben sind.pathSuffix
undpathAdvancePattern
wurden in API-Level 31 eingeführt. - Ein Sternchen (
android:mimeType
- Ein MIME-Medientyp, z. B.
image/jpeg
oderaudio/mpeg4-generic
. Der Untertyp kann der Sternchenplatzhalter (*
) sein, um anzuzeigen, dass ein beliebiger Untertyp übereinstimmt.Üblicherweise deklariert ein Intent-Filter ein
<data>
-Element, 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 daher MIME-Typen immer in 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-04-02 (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"
}]