<data>

sintaxe:
<data android:scheme="string"
          android:host="string"
          android:port="string"
          android:path="string"
          android:pathPattern="string"
          android:pathPrefix="string"
          android:mimeType="string" />
contida em:
<intent-filter>
descrição:
Adiciona uma especificação de dados a um filtro de intent. A especificação pode ser apenas um tipo de dado (o atributo mimeType), apenas um URI ou um tipo de dado e um URI. Um URI é especificado por atributos diferentes para cada uma das partes:

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

Esses atributos que especificam o formato de URL são opcionais, mas também mutuamente dependentes:

  • Se nenhum scheme for especificado para o filtro de intent, todos os outros atributos de URI serão ignorados.
  • Se nenhum host for especificado para o filtro, o atributo port e todos os atributos de caminho serão ignorados.

Todos os elementos <data> contidos no mesmo elemento <intent-filter> contribuem para o mesmo filtro. Por exemplo, a seguinte especificação de filtro,

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

é equivalente a:

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

Você pode colocar qualquer número de elementos <data> dentro de um <intent-filter> para dar várias opções de dados a ele. Nenhum dos atributos tem valores padrão.

As informações sobre o funcionamento dos filtros de intent, incluindo as regras de correspondência dos objetos de intent com filtros, podem ser encontradas em outro documento, Intents e filtros de intent. Consulte também a seção Filtros de intent na visão geral do arquivo de manifesto.

atributos:
android:scheme
Parte do esquema de um URI. Esse é o atributo essencial mínimo para especificar um URI. Pelo menos um atributo scheme precisa ser definido para o filtro, ou nenhum dos outros atributos de URI é significativo.

Um esquema é especificado sem os dois-pontos à direita (por exemplo, http, em vez de http:).

Se o filtro tiver um tipo de dados definido (atributo mimeType) e nenhum esquema, os esquemas content: e file: serão assumidos.

Observação : a correspondência de esquemas no framework do Android diferencia maiúsculas de minúsculas, ao contrário do RFC. Como resultado, sempre será necessário especificar esquemas usando letras minúsculas.

android:host
A parte do host de uma autoridade de URI. Esse atributo é insignificante, a menos que um atributo scheme também seja especificado para o filtro. Para corresponder a vários subdomínios, use um asterisco (*) para corresponder a zero ou mais caracteres no host. Por exemplo, o host *.google.com corresponde a www.google.com, .google.com e developer.google.com.

O asterisco precisa ser o primeiro caractere do atributo do host. Por exemplo, o host google.co.* é inválido porque o caractere curinga de asterisco não é o primeiro caractere.

Observação: a correspondência do nome do host no framework do Android diferencia maiúsculas de minúsculas, ao contrário do RFC formal. Como resultado, sempre será necessário especificar nomes de host usando letras minúsculas.

android:port
A parte da porta de uma autoridade de URI. Esse atributo só é significativo se os atributos scheme e host também forem especificados para o filtro.
android:path
android:pathPrefix
android:pathPattern
A parte do caminho de um URI que precisa começar com uma /. O atributo path especifica um caminho completo que corresponde ao caminho completo em um objeto de intent. O atributo pathPrefix especifica um caminho parcial que é comparado somente com a parte inicial do caminho no objeto de intent. O atributo pathPattern especifica um caminho completo que corresponde ao caminho completo no objeto de intent, mas pode conter os seguintes caracteres curinga:
  • Um asterisco ("*") corresponde a uma sequência de 0 a muitas ocorrências do caractere imediatamente anterior.
  • Um ponto seguido por um asterisco (".*") corresponde a uma sequência de 0 a muitos caracteres.

Como "\" é usado como um caractere de escape quando a string é lida a partir do XML, antes de ser analisada como padrão, você precisará de um escape duplo. Por exemplo, um "*" literal seria escrito como "\\*", e um "" literal seria escrito como "\\\\". Isso é basicamente igual ao que você precisaria escrever ao construir a string em código Java.

Para mais informações sobre esses três tipos de padrões, consulte as descrições de PATTERN_LITERAL, PATTERN_PREFIX e PATTERN_SIMPLE_GLOB na classe PatternMatcher.

Esses atributos são significativos somente se os atributos scheme e host também forem especificados para o filtro.

android:mimeType
Um tipo de mídia MIME, como image/jpeg ou audio/mpeg4-generic. O subtipo pode ser o asterisco curinga (*) para indicar que qualquer subtipo é correspondente.

É comum que um filtro de intent declare um <data> que inclua somente o atributo android:mimeType.

Observação: a correspondência de tipo MIME no framework do Android diferencia maiúsculas de minúsculas, ao contrário dos tipos RFC MIME formais. Como resultado, você sempre precisará especificar tipos MIME usando letras minúsculas.

primeira aparição:
API de nível 1
veja também:
<action>
<category>