¿Puede una aplicación tener prioridad sobre el sistema al acercar?
Sí, mientras esté en primer plano. Android deja que una actividad en primer plano reclame las etiquetas descubiertas antes que el despacho corriente, que es exactamente como una herramienta de lectura examina una etiqueta en lugar de dejar que se abra. En segundo plano, ninguna aplicación puede adelantarse al sistema.
Solo en primer plano
La documentación de Android describe un sistema de despacho en primer plano que permite a una actividad en primer plano tener prioridad cuando se descubre una etiqueta, y señala que pasa por encima del despacho corriente y de los registros que nombran una aplicación.
La condición hace todo el trabajo: la aplicación tiene que estar abierta y en pantalla. Una aplicación en segundo plano no tiene ese privilegio.
Por eso abrir una herramienta de lectura cambia lo que hace un toque. La herramienta ha reclamado las etiquetas mientras esté delante de ti.
Para qué se usa
Las herramientas de lectura, que necesitan examinar una etiqueta en lugar de dispararla. Sin esto, acercar una etiqueta mientras intentas inspeccionarla la abriría.
Las herramientas de escritura, por la misma razón. Escribir exige que la aplicación retenga la etiqueta durante todo el intercambio.
Las aplicaciones con sus propios recorridos de etiquetas, como una herramienta de inventario que espera una serie de etiquetas y quiere manejar cada una internamente.
En los tres casos la idea es la misma: la aplicación sabe qué quiere de la etiqueta y la suposición del sistema sería equivocada.
Qué no puede hacer
Reclamar etiquetas en segundo plano. En cuanto la aplicación deja de estar delante del usuario, el despacho corriente se reanuda.
Pasar por encima de otra aplicación que esté ella misma en primer plano, porque solo hay una cosa delante a la vez.
Cambiar lo que pasa en el teléfono de otra persona. Esta es una capacidad de una aplicación instalada, así que está disponible en los dispositivos que controlas y es irrelevante para un despliegue público.
Y no existe con esta forma en iOS, donde la lectura la inicia la aplicación en lugar de interceptarse de un flujo del sistema.
Consecuencias para un despliegue
Para etiquetas en un entorno controlado, una aplicación en primer plano te da control exacto sobre lo que hace un toque.
Para etiquetas en público, no tienes ninguno. El teléfono es de otra persona, y lo que tenga instalado y lo que haya en pantalla deciden el desenlace.
Lo que devuelve el diseño a una dirección web, porque se comporta de forma previsible tanto si una aplicación está reclamando etiquetas como si no.
Y explica un resultado de prueba confuso: una etiqueta que se comporta de una manera con una herramienta de lectura abierta y de otra desde la pantalla de inicio se está comportando correctamente en ambos casos.
Preguntas frecuentes
¿Por qué mi etiqueta se comporta distinto con una app de lectura abierta?
Porque una aplicación en primer plano puede reclamar las etiquetas antes que el sistema. Ese es el mecanismo del que dependen las herramientas de lectura y de escritura.
¿Puede una aplicación reclamar etiquetas en segundo plano?
No. El privilegio se aplica a una actividad en primer plano, así que una aplicación pasada a segundo plano no se adelanta al despacho corriente.
¿Esto funciona en el iPhone?
No con esta forma. En iOS una aplicación inicia ella misma una sesión de lectura en lugar de interceptar un flujo del sistema.
¿Puedo usarlo en un despliegue público?
Solo allí donde controles los dispositivos. En el teléfono de un visitante controlas la etiqueta y nada más.