sintaxis:
<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" />
se incluye en:
<intent-filter>
descripción:
Agrega una especificación de datos a un filtro de intents. La especificación puede ser un tipo de datos (el atributo mimeType), un URI o ambos. Un URI se especifica por medio de atributos separados para cada una de sus partes:

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

Estos atributos que especifican el formato de URL son opcionales, pero también interdependientes:

  • Si no se especifica un scheme para el filtro de intents, se ignoran todos los otros atributos de URI.
  • Si no se especifica un host para el filtro, se ignora el atributo port y todos los atributos de ruta de acceso.

Todos los elementos <data> dentro del mismo elemento <intent-filter> contribuyen al mismo filtro. Por ejemplo, la siguiente especificación de filtro:

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

equivale a lo siguiente:

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

Puedes colocar todos los elementos <data> que quieras dentro de un <intent-filter> a fin de proporcionarle varias opciones de datos. Ninguno de sus atributos tiene valores predeterminados.

En Intents y filtros de intents, puedes encontrar información sobre el funcionamiento de los filtros de intents, incluidas las reglas sobre el modo en que se comparan los objetos de intents con los filtros. Consulta también la sección sobre Filtros de intents en la descripción general del archivo de manifiesto.

atributos:
android:scheme
Es el esquema que forma parte de un URI. Se trata del atributo mínimo esencial para especificar un URI. Se debe configurar al menos un atributo scheme para el filtro, de lo contrario, ningún otro atributo URI será significativo.

Se especifica un esquema sin los dos puntos finales (por ejemplo, http en lugar de http:).

Si el filtro tiene un conjunto de tipos de datos (el atributo mimeType), pero no tiene un esquema, se usan los esquemas content: y file:.

Nota: La coincidencia de esquemas en el framework de Android distingue entre mayúsculas y minúsculas, a diferencia del RFC. Por lo tanto, siempre debes especificar esquemas con letras minúsculas.

android:host
Es la parte del host de una autoridad de URI. Este atributo no es significativo, a menos que también se especifique un atributo scheme para el filtro. Para hacer coincidir varios subdominios, usa un asterisco (*) a fin de hacer coincidir varios caracteres en el host o ninguno. Por ejemplo, el host *.google.com coincide con www.google.com, .google.com y developer.google.com.

El asterisco debe ser el primer carácter del atributo de host. Por ejemplo, el host google.co.* no es válido, ya que el comodín de asterisco no es el primer carácter.

Nota: La coincidencia del nombre de host en el framework de Android distingue entre mayúsculas y minúsculas, a diferencia del RFC formal. Por lo tanto, siempre debes especificar los nombres de host con letras minúsculas.

android:port
Es la parte del puerto de una autoridad de URI. Este atributo es significativo solo si también se especifican los atributos scheme y host para el filtro.
android:path
android:pathPrefix
android:pathSuffix
android:pathPattern
android:pathAdvancedPattern
Es la parte de la ruta de acceso de un URI que debe comenzar con una barra (/). El atributo path especifica una ruta de acceso completa que se compara con la ruta de acceso completa en un objeto de intent. El atributo pathPrefix especifica una ruta de acceso parcial que se compara solo con la parte inicial de la ruta de acceso del objeto de intent. Se hace coincidir el atributo pathSuffix con la parte final de la ruta de acceso del objeto de intent y no es obligatorio comenzar con el carácter "/". El atributo pathPattern especifica una ruta de acceso completa que se compara con la ruta de acceso completa del objeto de intent, pero puede contener los siguientes comodines:
  • Un asterisco ("*") coincide con una secuencia inmediatamente anterior compuesta por 0 a muchos caracteres.
  • Un punto seguido de un asterisco (.*) coincide con cualquier secuencia compuesta por cero a muchos caracteres.

El atributo pathAdvancedPattern especifica una ruta de acceso completa, que se compara con la ruta completa del objeto de intent, y admite los siguientes patrones similares a una regex:

  • Un punto (.) coincide con cualquier carácter.
  • Un intervalo ([...]) coincide con un rango de caracteres. Por ejemplo, [0-5] coincide con un solo dígito de 0 a 5, pero no 6 a 9. Del mismo modo, [a-zA-Z] coincidiría con cualquier letra, sin importar el caso. Los intervalos también admiten el modificador no ^.
  • El modificador de estrella (*) coincide con el patrón anterior cero o más veces.
  • El modificador más (+) coincide con el patrón anterior una o más veces.
  • El modificador de rango ({...}) se puede usar para especificar la cantidad de veces que puede coincidir un patrón.
El comparador pathAdvancedPattern es una implementación de evaluación simple en la que la comparación se realiza con el patrón en tiempo real y no es compatible con el seguimiento.

Debido a que "\" se usa como carácter de escape cuando la string se lee desde XML (antes de que se analice como patrón), deberás escapar dos veces; por ejemplo, un "*" literal se escribe "\\*" y una "\" literal se escribe "\\\\", que es básicamente lo mismo que debes escribir si creas la string con código Java.

Para obtener más información sobre estos cinco tipos de patrones, consulta las descripciones de PATTERN_LITERAL, PATTERN_PREFIX, PATTERN_SIMPLE_GLOB, PATTERN_SUFFIX y PATTERN_ADVANCED_GLOB en la clase PatternMatcher.

Estos atributos solo son significativos si también se especifican los atributos scheme y host para el filtro.

Se introdujo pathSuffix y pathAdvancePattern en el nivel de API 31.

android:mimeType
Es un tipo de medio MIME, como image/jpeg o audio/mpeg4-generic. El subtipo puede ser el comodín de asterisco (*) para indicar que cualquier subtipo coincide.

Es común que un filtro de intent declare un <data> que incluya solo el atributo android:mimeType.

Nota: La coincidencia con el tipo de MIME en el marco de trabajo de Android distingue entre mayúsculas y minúsculas, a diferencia de los tipos de MIME de RFC formales. Por lo tanto, siempre debes especificar tipos de MIME con letras minúsculas.

primera inclusión:
Nivel de API 1
consulta también:
<action>
<category>