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:
Os 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 vão ser ignorados.
Se nenhum host for especificado para o filtro, o atributo port e todos os atributos de caminho vão ser ignorados.
Todos os elementos <data> contidos no mesmo elemento <intent-filter> contribuem para o mesmo filtro. Por exemplo, a especificação de filtro abaixo,
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.
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 no documento Intents e filtros de intent. Consulte também a seção Filtros de intent na visão geral do arquivo de manifesto.
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 vai ser 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: 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 é necessário especificar esquemas usando letras minúsculas.
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 é necessário especificar nomes de host usando letras minúsculas.
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.
A parte do caminho de um URI que precisa começar com uma /. O atributo path especifica um caminho completo que corresponde ao caminho de 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 da intent, mas pode conter os caracteres curinga abaixo:
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.
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 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, você sempre precisa especificar tipos MIME usando letras minúsculas.