Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.
Syntaxe :
<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" />
Contenu dans :
<intent-filter>
Description :
Ajoute une spécification de données à un filtre d'intent. La spécification peut être un type de données (attribut mimeType), un URI ou les deux. Un URI est spécifié par des attributs distincts pour chacune de ses sections :

<scheme>://<host>:<port>[<path>|<pathPrefix>|<pathPattern>|<pathAdvancedPattern>|<pathSuffix>]

Les attributs suivants, qui précisent le format de l'URL, sont facultatifs, mais dépendent également les uns des autres :

  • Si aucun élément scheme n'est spécifié pour le filtre d'intent, tous les autres attributs d'URI sont ignorés.
  • Si aucun élément host n'est spécifié pour le filtre, l'attribut port et tous les attributs de chemin sont ignorés.

Tous les éléments <data> qui se trouvent dans le même élément <intent-filter> contribuent au même filtre. Par exemple, la spécification de filtre suivante :

<intent-filter . . . >
    <data android:scheme="something" android:host="project.example.com" />
    . . .
</intent-filter>

équivaut à celui-ci :

<intent-filter . . . >
    <data android:scheme="something" />
    <data android:host="project.example.com" />
    . . .
</intent-filter>

Vous pouvez placer autant d'éléments <data> que vous le souhaitez dans un élément <intent-filter> pour lui donner plusieurs options de données. Aucun de ses attributs n'a de valeurs par défaut.

Pour en savoir plus sur le fonctionnement des filtres d'intent, y compris les règles de mise en correspondance des objets Intent, consultez la section Intents et filtres d'intent disponible dans un autre document. Consultez également la section Filtres d'intent dans la présentation du fichier manifeste.

Attributs :
android:scheme
Partie "schéma" d'un URI. Il s'agit de l'attribut minimal requis pour spécifier un URI. Au moins un attribut scheme doit être défini pour le filtre. Sinon, aucun des autres attributs d'URI n'est pertinent.

Un schéma est spécifié sans les deux-points à la fin (par exemple, http au lieu de http:).

Si le filtre comporte un type de données défini (attribut mimeType), mais pas de schéma, les schémas content: et file: sont utilisés.

Remarque : Contrairement au document RFC, la correspondance de schéma dans le framework Android est sensible à la casse. Par conséquent, vous devez toujours spécifier les schémas en minuscules.

android:host
Partie "hôte" d'une autorité d'URI. Cet attribut n'a aucun sens, sauf si un attribut scheme est également spécifié pour le filtre. Pour établir une correspondance avec plusieurs sous-domaines, utilisez un astérisque (*) afin de faire correspondre zéro caractère ou plus à l'hôte. Par exemple, l'hôte *.google.com correspond à www.google.com, .google.com et developer.google.com.

L'astérisque doit être le premier caractère de l'attribut d'hôte. Par exemple, l'hôte google.co.* n'est pas valide, car le caractère générique (astérisque) ne correspond pas au premier caractère.

Remarque : Contrairement au document RFC formel, la correspondance des noms d'hôte dans le framework Android est sensible à la casse. Par conséquent, vous devez toujours spécifier les noms d'hôte en minuscules.

android:port
Partie "port" d'une autorité d'URI. Cet attribut n'est pertinent que si les attributs scheme et host sont également spécifiés pour le filtre.
android:path
android:pathPrefix
android:pathSuffix
android:pathPattern
android:pathAdvancedPattern
Partie "chemin" d'un URI qui doit commencer par /. L'attribut path spécifie un chemin d'accès complet mis en correspondance avec le chemin d'accès complet dans un objet Intent. L'attribut pathPrefix spécifie un chemin partiel mis en correspondance uniquement avec la partie initiale du chemin dans l'objet Intent. L'attribut pathSuffix est mis en correspondance exactement avec la partie finale du chemin dans l'objet Intent, et ne commence pas nécessairement par le caractère "/". L'attribut pathPattern spécifie un chemin d'accès complet, qui est mis en correspondance avec le chemin d'accès complet dans l'objet Intent et accepte les caractères génériques suivants :
  • Un astérisque ("*") correspond à une séquence de 0 à plusieurs occurrences du caractère qui précède immédiatement.
  • Un point suivi d'un astérisque (".*") correspond à n'importe quelle séquence de 0 caractère ou plus.

L'attribut pathAdvancedPattern spécifie un chemin d'accès complet, qui est mis en correspondance avec le chemin d'accès complet de l'objet Intent, et qui accepte les formats suivants de type "expression régulière" :

  • Un point (".") correspond à n'importe quel caractère.
  • Un ensemble ("[...]") correspond à des plages de caractères. Par exemple, [0-5] correspond à un seul chiffre compris entre 0 à 5, mais pas entre 6 et 9. De même, [a-zA-Z] peut renvoyer n'importe quelle lettre, quelle que soit la casse. Les ensembles acceptent également le modificateur ^.
  • L'étoile (*) correspond au format qui précède zéro fois ou plus.
  • Le modificateur Plus (+) correspond au format qui précède une fois ou plus.
  • Vous pouvez utiliser le modificateur de plage ("{...}") pour indiquer le nombre de correspondances possibles d'un format.
L'outil de mise en correspondance pathAdvancedPattern est une implémentation d'évaluation simple dans laquelle la mise en correspondance est effectuée par rapport au modèle en temps réel sans prise en charge du suivi en arrière-plan.

Étant donné que "\" est utilisé comme caractère d'échappement lorsque la chaîne est lue à partir d'un fichier XML (avant d'être analysée comme un modèle), vous devez utiliser deux échappements : par exemple, un littéral "*" serait écrit "\\*", et un littéral "\" serait écrit "\\\\". Cela revient essentiellement à écrire comme si vous construisiez la chaîne en code Java.

Pour en savoir plus sur ces cinq types de modèles, consultez les descriptions de PATTERN_LITERAL, PATTERN_PREFIX, PATTERN_SIMPLE_GLOB, PATTERN_SUFFIX et PATTERN_ADVANCED_GLOB dans la classe PatternMatcher.

Ces attributs ne sont pertinents que si les attributs scheme et host sont également spécifiés pour le filtre.

L'attribut pathSuffix a été introduit dans le niveau d'API 31.

L'attribut pathAdvancedPattern a été introduit dans le niveau d'API 26.

android:mimeType
Type de média MIME, comme image/jpeg ou audio/mpeg4-generic. Le caractère générique astérisque (*) indique que tout sous-type correspond.

Il est courant qu'un filtre d'intent déclare un élément <data> n'incluant que l'attribut android:mimeType.

Remarque : Dans le framework Android, la correspondance des types MIME est sensible à la casse, contrairement aux types MIME du document RFC formel. Par conséquent, vous devez toujours spécifier les types MIME en minuscules.

Première apparition :
Niveau API 1
Voir aussi :
<action>
<category>