- Sintaxe:
- Se a tag de dados for filha imediata de um
<intent-filter>
:
<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 a tag de dados for filha imediata de um<uri-relative-filter-group>
:
<data android:path="string" android:pathPattern="string" android:pathPrefix="string" android:pathSuffix="string" android:pathAdvancedPattern="string" android:fragment="string" android:fragmentPattern="string" android:fragmentPrefix="string" android:fragmentSuffix="string" android:fragmentAdvancedPattern="string" android:query="string" android:queryPattern="string" android:queryPrefix="string" android:querySuffix="string" android:queryAdvancedPattern="string" />
- contido em:
-
<intent-filter>
<uri-relative-filter-group>
- 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 atributoport
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.
- Se um
- 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 dehttp:
.Se o filtro tiver um tipo de dados definido (usando o atributo
mimeType
) e nenhum esquema, os esquemascontent:
efile:
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 awww.google.com
,.google.com
edeveloper.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
ehost
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 atributopath
especifica um caminho completo que corresponde ao caminho completo em um objetoIntent
. O atributopathPrefix
especifica um caminho parcial que corresponde somente à parte inicial do caminho no objetoIntent
.O atributo
pathSuffix
corresponde exatamente à parte final do caminho no objetoIntent
, e esse atributo não precisa começar com o caractere/
. O atributopathPattern
especifica um caminho completo que corresponde ao caminho completo no objetoIntent
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 objetoIntent
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.
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
ePATTERN_ADVANCED_GLOB
na classePatternMatcher
.Esses atributos são significativos somente se os atributos
scheme
ehost
também forem especificados para o filtro.pathSuffix
epathAdvancedPattern
foram introduzidos no nível 31 da API. - Um asterisco (
android:fragment
android:fragmentPrefix
android:fragmentSuffix
android:fragmentPattern
android:fragmentAdvancedPattern
-
Um comparador para um fragmento de URI. Não inclua o prefixo
#
. Consulte acima o significado e os padrões permitidos em cada atributo.Para corresponder a caracteres que geralmente são codificados em URI, inclua a forma bruta (não codificada) no valor do atributo. Por exemplo,
<data android:fragment="test!" />
corresponde a#test!
e#test%21
.Introduzido no nível 35 da API.
android:query
android:queryPrefix
android:querySuffix
android:queryPattern
android:queryAdvancedPattern
-
Um comparador para um parâmetro de consulta de URI (e, opcionalmente, um valor). Por exemplo, é possível fazer a correspondência de URIs que terminam em
?param=value
com<data android:query="param=value" />
. Não inclua o prefixo?
. Consulte acima o significado e os padrões permitidos em cada atributo.Para corresponder a caracteres que geralmente são codificados em URI, inclua a forma bruta (não codificada) no valor do atributo. Por exemplo,
<data android:query="test!" />
corresponde a?test!
e?test%21
.Introduzido no nível 35 da API.
android:mimeType
- Um tipo de mídia MIME, como
image/jpeg
ouaudio/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 atributoandroid: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>
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2024-12-02 UTC.
[null,null,["Última atualização 2024-12-02 UTC."],[],[]]