<data>

sintaxis:
<data android:scheme="string"
          android:host="string"
          android:port="string"
          android:path="string"
          android:pathPattern="string"
          android:pathPrefix="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>]

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 la información sobre cómo funcionan los filtros de intents, incluidas las reglas sobre cómo 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. Es el 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 marco de trabajo 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 marco de trabajo 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:pathPattern
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 en el objeto de intent. El atributo pathPattern especifica una ruta de acceso completa que se compara con la ruta de acceso completa en el objeto de intent, pero puede contener los siguientes comodines:
  • Un asterisco (*) coincide con una secuencia inmediatamente anterior compuesta por cero a muchos caracteres.
  • Un punto seguido de un asterisco (.*) coincide con cualquier secuencia compuesta por cero a muchos caracteres.

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 tres tipos de patrones, consulta las descripciones de PATTERN_LITERAL, PATTERN_PREFIX y PATTERN_SIMPLE_GLOB en la clase PatternMatcher.

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

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:
API nivel 1
consulta también:
<action>
<category>