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

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

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

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

Diese Attribute sind nur sinnvoll, wenn die scheme und host werden auch für den Filter angegeben.

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

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