- sintaxis:
- Si la etiqueta de datos es el elemento secundario inmediato de un
<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" />
Si la etiqueta de datos es el elemento secundario inmediato de un<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" />
- se incluye en:
-
<intent-filter>
<uri-relative-filter-group>
- descripción:
- Agrega una especificación de datos a un filtro de intents. La especificación es un tipo de datos que usa 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>|<pathAdvancedPattern>|<pathSuffix>]
Estos atributos que especifican el formato de URI 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 atributoport
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 la 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>
para proporcionarle varias opciones de datos. Ninguno de sus atributos tiene valores predeterminados.Para obtener información sobre el funcionamiento de los filtros de intents, incluidas las reglas sobre cómo se comparan los objetos de intents con los filtros, consulta Intents y filtros de intents y la sección Filtros de intents en la descripción general del archivo de manifiesto.
- Si no se especifica un
- atributos:
android:scheme
- Es la porción de esquema de un URI. Se trata del 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 del URI será significativo.El esquema se especifica sin los dos puntos finales; por ejemplo, se usa
http
en lugar dehttp:
.Si el filtro tiene un conjunto de tipos de datos (que usa el atributo
mimeType
), pero no tiene un esquema, se usan los esquemascontent:
yfile:
.Nota: La verificación de coincidencia de esquemas en el framework 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 establecer coincidencias con varios subdominios, usa un asterisco (*
) que represente entre cero y varios caracteres del host. Por ejemplo, el host*.google.com
coincide conwww.google.com
,.google.com
ydeveloper.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 verificación de coincidencia del nombre de host en el framework 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 solamente si también se especifican los atributos
scheme
yhost
para el filtro. android:path
android:pathPrefix
android:pathSuffix
android:pathPattern
android:pathAdvancedPattern
- Es la parte de la ruta de acceso de un URI, que debe comenzar con
/
. El atributopath
especifica una ruta de acceso completa que se compara con una ruta de acceso completa en un objetoIntent
. El atributopathPrefix
especifica una ruta de acceso parcial que se compara solo con la parte inicial de la ruta de acceso del objeto deIntent
.El atributo
pathSuffix
se compara solamente con la parte final de la ruta de acceso del objetoIntent
, y este atributo no tiene que comenzar con el carácter/
. El atributopathPattern
especifica una ruta de acceso completa que se compara con la ruta de acceso completa del objetoIntent
, pero puede contener los siguientes comodines:- Un asterisco (
*
) coincide con una secuencia de entre cero y muchas repeticiones del carácter inmediatamente anterior. - Un punto seguido de un asterisco (
.*
) coincide con cualquier secuencia de entre cero y muchos caracteres.
El atributo
pathAdvancedPattern
especifica una ruta de acceso completa, que se compara con la ruta completa del objetoIntent
y admite los siguientes patrones similares a una regex:-
Un punto (
.
) coincide con cualquier carácter. -
Un conjunto (
[...]
) coincide con un rango de caracteres. Por ejemplo,[0-5]
coincide con un solo dígito de 0 a 5, pero no de 6 a 9.[a-zA-Z]
coincide con cualquier letra, sin importar el uso de mayúsculas o minúsculas. Los conjuntos también admiten el modificador^
con el valor "no". -
El modificador de asterisco (
*
) coincide con el patrón anterior cero o más veces. -
El modificador de signo más (
+
) coincide con el patrón anterior una o más veces. -
El modificador de rango (
{...}
) especifica la cantidad de veces que puede coincidir un patrón.
pathAdvancedPattern
es una implementación de evaluación en la que la comparación se realiza con el patrón en tiempo real y no es compatible con la técnica de backtracking.Debido a que
\
se usa como un carácter de escape cuando la cadena se lee desde XML, antes de que se analice como un patrón, deberás usar dos caracteres de escape. Por ejemplo, un*
literal se escribe como\\*
y una\
literal se escribe como\\\
. Esto es como lo que escribes cuando construyes la cadena en código Java.Para obtener más información sobre estos cinco tipos de patrones, consulta las descripciones de
PATTERN_LITERAL
,PATTERN_PREFIX
,PATTERN_SIMPLE_GLOB
,PATTERN_SUFFIX
yPATTERN_ADVANCED_GLOB
en la clasePatternMatcher
.Estos atributos solo son significativos si también se especifican los atributos
scheme
yhost
para el filtro.pathSuffix
ypathAdvancedPattern
se incluyeron en el nivel de API 31. - Un asterisco (
android:fragment
android:fragmentPrefix
android:fragmentSuffix
android:fragmentPattern
android:fragmentAdvancedPattern
-
Es un comparador para un fragmento de URI. No incluyas el prefijo
#
. Consulta más arriba el significado y los patrones permitidos en cada atributo.Para hacer coincidir los caracteres que suelen estar codificados en URI, incluye la forma sin procesar (no codificada) en el valor del atributo. Por ejemplo,
<data android:fragment="test!" />
coincide con#test!
y#test%21
.Se introdujo en el nivel de API 35.
android:query
android:queryPrefix
android:querySuffix
android:queryPattern
android:queryAdvancedPattern
-
Es un comparador para un parámetro de consulta de URI (y, de manera opcional, un valor). Por ejemplo, puedes hacer coincidir los URIs que terminan en
?param=value
con<data android:query="param=value" />
. No incluyas el prefijo?
. Consulta más arriba el significado y los patrones permitidos en cada atributo.Para hacer coincidir los caracteres que suelen estar codificados en URI, incluye la forma sin procesar (no codificada) en el valor del atributo. Por ejemplo,
<data android:query="test!" />
coincide con?test!
y?test%21
.Se introdujo en el nivel de API 35.
android:mimeType
- Es un tipo de medio MIME, como
image/jpeg
oaudio/mpeg4-generic
. El subtipo puede ser el comodín de asterisco (*
) para indicar que cualquier subtipo coincide.Es común que un filtro de intents declare un elemento
<data>
que incluya solamente el atributoandroid:mimeType
.Nota: La verificación de coincidencia con el tipo de MIME en el framework 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:
- Nivel de API 1
- consulta también:
<action>
<category>
El contenido y las muestras de código que aparecen en esta página están sujetas a las licencias que se describen en la Licencia de Contenido. Java y OpenJDK son marcas registradas de Oracle o sus afiliados.
Última actualización: 2024-12-02 (UTC)
[null,null,["Última actualización: 2024-12-02 (UTC)"],[],[]]