<dados>

Sintaxe:
<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" />
contido em:
<intent-filter>
descrição:
Adiciona uma especificação de dados a um filtro de intent. A especificação é um tipo de dados, usando o atributo mimeType, um URI ou um tipo de dados e um URI. Um URI é especificado por atributos diferentes para cada uma das partes:

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

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

  • Se um scheme não for especificado para o filtro de intent, todos os outros atributos de URI serão ignorados.
  • Se um host não 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 especificação de filtro abaixo:

<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 quantos elementos <data> quiser dentro de um <intent-filter> para dar várias opções de dados a ele. Nenhum dos atributos tem valores padrão.

Para mais informações sobre como os filtros de intent funcionam, incluindo as regras de correspondência dos objetos de intent com os filtros, consulte Intents e filtros de intent e 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. Caso contrário, nenhum dos outros atributos de URI será significativo.

Um esquema é especificado sem os dois-pontos à direita, como http em vez de http:.

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

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 especifique 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. Use um asterisco (*) para corresponder a vários subdomínios e de zero a 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 especifique 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:pathSuffix
android:pathPattern
android:pathAdvancedPattern
A parte do caminho de um URI, que precisa começar com /. O atributo path especifica um caminho completo que corresponde ao caminho completo em um objeto Intent. O atributo pathPrefix especifica um caminho parcial que corresponde somente à parte inicial do caminho no objeto Intent.

O atributo pathSuffix corresponde exatamente à parte final do caminho no objeto Intent, e esse atributo não precisa começar com o caractere /. O atributo pathPattern especifica um caminho completo que corresponde ao caminho completo no objeto Intent e pode conter os caracteres curinga abaixo:

  • Um asterisco (*) corresponde a uma sequência de zero a várias ocorrências do caractere imediatamente anterior.
  • Um ponto seguido por um asterisco (.*) corresponde a qualquer sequência de zero a vários caracteres.

O atributo pathAdvancedPattern especifica um caminho completo, que corresponde ao caminho completo do objeto Intent e oferece suporte a estes padrões parecidos com o regex:

  • Um ponto (.) faz correspondência com qualquer caractere.
  • Um conjunto ([...]) corresponde a intervalos de caracteres. Por exemplo, [0-5] corresponde a um único dígito de 0 a 5, mas não de 6 a 9. [a-zA-Z] corresponde a qualquer letra, independente de ser maiúscula ou minúscula. Os conjuntos também oferecem suporte ao modificador "not" ^.
  • O modificador de asterisco (*) corresponde ao padrão anterior zero ou mais vezes.
  • O modificador de adição (+) corresponde ao padrão anterior uma ou mais vezes.
  • O modificador de intervalo ({...}) especifica o número de vezes que um padrão pode fazer correspondência.
O matcher pathAdvancedPattern é uma implementação de avaliação em que a correspondência com o padrão é realizada em tempo real e sem suporte a retrocessos.

Como \ é usado como caractere de escape quando a string é lida do XML, antes de fazer a análise como padrão, você precisa do escape duplo. Por exemplo, um * literal é escrito como \\* e um \ literal é escrito como \\\. Isso é o que você escreve ao criar a string no código Java.

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

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

pathSuffix e pathAdvancedPattern foram introduzidos no nível 31 da API.

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 faz a correspondência.

É comum que um filtro de intent declare um elemento <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, sempre especifique tipos MIME usando letras minúsculas.

introduzido no:
Nível 1 da API
confira também:
<action>
<category>