Saltar al contenido
Idioma: ES

¿Qué es el sistema de despacho de etiquetas de Android?

La parte de Android que decide qué aplicación recibe una etiqueta. Analiza lo leído y prueba tres niveles en un orden fijo, desde una coincidencia con el contenido real hasta un último recurso que se limita a anunciar que se ha encontrado una etiqueta. A partir de Android 16, una etiqueta con una dirección web se abre en cambio como cualquier otro enlace, y a partir de Android 17 el último recurso queda declarado obsoleto.

Tres niveles, por orden

La documentación de Android describe el sistema como algo que analiza una etiqueta descubierta, clasifica los datos y arranca una aplicación interesada en ellos.

El primer nivel se aplica cuando la etiqueta contiene contenido NDEF que el sistema puede asociar a un tipo. Las aplicaciones registradas para ese tipo son las candidatas.

Las direcciones web son la excepción a partir de Android 16. La guía de NFC de Android dice que una etiqueta con un enlace http o https dispara entonces la petición corriente de abrir un enlace, a la que responde el navegador o una aplicación verificada para esa dirección, y a partir de Android 17 solo una vez que el usuario ha respondido a una notificación para abrirla.

El segundo se aplica cuando el contenido no se puede asociar así. Se usan entonces las tecnologías de la etiqueta, así que las aplicaciones registradas para una tecnología son las candidatas.

El tercero es el recurso final, que se arranca cuando nada ha manejado ninguno de los dos primeros. Lleva la etiqueta y ninguna interpretación, y la documentación lo declara obsoleto a partir de Android 17.

Por qué cuenta el orden

Gana la especificidad. Una aplicación registrada para el contenido exacto gana a una registrada para la tecnología, que gana al caso general.

Así que una etiqueta que abre lo que no toca suele ser una etiqueta cuyo contenido coincidió con algo más específico de lo que esperabas, y no un sistema que se comporta de forma imprevisible.

Explica además por qué la misma etiqueta se comporta distinto en dos teléfonos. La etiqueta es idéntica y el conjunto de candidatas instaladas no.

Y explica el selector: dos aplicaciones en el mismo nivel, ambas elegibles, y ninguna base para que el sistema prefiera una.

Nombrar una aplicación desde la etiqueta

Una etiqueta puede llevar un registro que nombre una aplicación de Android, lo que expresa una preferencia por esa aplicación en lugar de dejar la elección abierta.

La documentación señala que el sistema de despacho en primer plano puede pasar por encima, así que un registro de este tipo es una indicación fuerte y no una instrucción.

Cuesta además bytes y no hace nada en otras plataformas, así que merece añadirse solo allí donde la aplicación sea de verdad el objeto de la etiqueta.

Para un despliegue público, una dirección web es más previsible. Funciona en todos los teléfonos, haya o no algo instalado.

Qué debe retener un despliegue

Escribe contenido cuyo manejo puedas predecir, lo que en la práctica significa una dirección web.

Prueba en un dispositivo que se parezca al de tu público y no al tuyo, porque la lista de candidatas es lo que difiere entre ellos.

Cuenta con que en algunos teléfonos aparecerá un selector y diseña para que eso no sea un desastre: un destino claro que tenga sentido abra el navegador que abra.

Y no te fíes de que se abra una aplicación concreta salvo que controles los teléfonos, porque controlas la etiqueta y no lo que hay instalado al otro lado.

Preguntas frecuentes

¿Puedo forzar que una aplicación reciba mi etiqueta?

Solo allí donde controles el dispositivo. Un registro que nombra una aplicación expresa una preferencia, y una aplicación en primer plano puede pasar por encima. A partir de Android 16, el usuario puede además impedir del todo que una aplicación reciba etiquetas.

¿Por qué aparece un selector?

Dos o más aplicaciones instaladas son elegibles en el mismo nivel, así que el sistema pregunta en lugar de adivinar.

¿Qué pasa con una etiqueta que no es NDEF?

Se aplica el nivel de la tecnología en lugar del nivel del contenido, así que las candidatas son las aplicaciones registradas para esa tecnología.

¿iOS funciona igual?

No. iOS actúa sobre un conjunto más estrecho de tipos de registro e inserta un paso de confirmación en el camino de segundo plano, así que la misma etiqueta se comporta distinto.