<Daten>

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 Attribut port 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.

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 statt http:.

Wenn für den Filter ein Datentyp festgelegt ist (mit dem Attribut mimeType), aber kein Schema, werden die Schemas content: und file: 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 mit www.google.com, .google.com und developer.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 und host 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 Attribut path gibt einen vollständigen Pfad an, der mit dem vollständigen Pfad in einem Intent-Objekt abgeglichen wird. Das Attribut pathPrefix gibt einen Teilpfad an, der nur mit dem ersten Teil des Pfads im Intent-Objekt abgeglichen wird.

Das Attribut pathSuffix wird genau mit dem Endteil des Pfads im Objekt Intent abgeglichen. Dieses Attribut muss nicht mit dem Zeichen / beginnen. Das Attribut pathPattern gibt einen vollständigen Pfad an, der mit dem vollständigen Pfad im Objekt Intent 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 des Intent-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.
Der 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 und PATTERN_ADVANCED_GLOB in der Klasse PatternMatcher.

Diese Attribute sind nur aussagekräftig, wenn die Attribute scheme und host auch für den Filter angegeben sind.

pathSuffix und pathAdvancePattern wurden in API-Level 31 eingeführt.

android:mimeType
Ein MIME-Medientyp, z. B. image/jpeg oder audio/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 Attribut android: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>