¿Se puede cambiar lo que hace una etiqueta NFC después de escribirla?
Puedes cambiar lo que hace una etiqueta NFC escribiendo un mensaje nuevo, salvo que esté bloqueada. El bloqueo es de un solo sentido: prueba antes de bloquear.
Sí. Si la etiqueta no está bloqueada, puedes escribir un mensaje NDEF nuevo encima del anterior y la próxima vez que la toques hará otra cosa. Si está bloqueada, el contenido se queda como está para siempre. En esta guía verás cómo saber en cuál de los dos casos estás y qué hacer.
Respuesta rápida
En una etiqueta sin bloquear, reescribir es lo normal. La clase Ndef de Android tiene un método writeNdefMessage que, según la documentación, "sobrescribe el NdefMessage de esta etiqueta". No hace falta borrar antes ni usar una herramienta especial. El mensaje nuevo sustituye al anterior.
La trampa es el bloqueo. Las etiquetas del NFC Forum pueden estar en estado de solo lectura o de lectura y escritura, y la misma documentación dice que makeReadOnly marca el campo CC (capability container) como solo lectura y, cuando es posible, fija de forma permanente los lock bits. Lo describe como "un proceso de un solo sentido" que no se puede revertir. Así que la pregunta de fondo no es "¿puedo cambiarla?", sino "¿la bloqueé yo, o alguien más?"
Paso a paso
1. Comprueba si la etiqueta se puede escribir
Escanea la etiqueta con un lector que indique su estado. Android lo expone como isWritable(), y cualquier app lectora que muestre un indicador de solo lectura hace la misma comprobación. Si no tienes claro lo que ves, nuestra guía sobre cómo comprobar si una etiqueta está bloqueada te lo explica.
2. Comprueba que el contenido nuevo cabe
Cada etiqueta tiene una memoria fija. Android informa del tamaño máximo del mensaje NDEF en bytes con getMaxSize(). Una URL corta cabe casi en cualquier sitio. Un registro de Wi-Fi o una vCard necesitan más espacio. La página de ayuda de WakdevNFC lo dice sin rodeos: asegúrate de que la etiqueta tiene memoria suficiente para los datos que quieres escribir.
3. Escribe el mensaje nuevo
Elige el registro nuevo (URL, texto, Wi-Fi, contacto), acerca el teléfono a la etiqueta y escribe. El mensaje anterior se sobrescribe. Si prefieres empezar con una etiqueta en blanco, puedes borrar y reformatear la etiqueta antes, aunque no es necesario para una reescritura normal.
Problemas comunes y soluciones
La etiqueta está bloqueada
Una etiqueta bloqueada rechaza las escrituras. WakdevNFC lo dice directamente: si la etiqueta está bloqueada, "no podrás escribir en ella". En iOS, writeLock de Core NFC cambia el estado NDEF de la etiqueta a solo lectura e impide futuras escrituras. Algunos bloqueos pueden ser más blandos que otros, pero la documentación de Android dice que el permanente no se puede deshacer. Da por terminada una etiqueta bloqueada y usa otra nueva.
Por eso conviene bloquear al final. Escribe, prueba la etiqueta con un iPhone y con un teléfono Android, ejecuta la automatización que activa y solo entonces bloquéala, si de verdad lo necesitas. Una etiqueta en un lugar público, como un cartel o una pegatina en una mesa, es el caso principal en el que bloquear tiene sentido, porque evita que otras personas la sobrescriban.
La escritura falla por otro motivo
El bloqueo no es la única causa. El mensaje puede ser demasiado grande para el chip, o tu teléfono puede no ser compatible con la tecnología de la etiqueta. WakdevNFC recomienda comprobar que tu dispositivo es compatible con la tecnología de la etiqueta. Las tarjetas protegidas, como las de acceso, pago y transporte, son otra cosa: están diseñadas para que no se puedan leer, escribir ni copiar libremente, y esta guía no las cubre. Nuestro artículo sobre errores de escritura y qué significa cada uno te ayuda a distinguir una etiqueta bloqueada de una que simplemente se alejó del alcance.
Vas a cambiarla a menudo
Si el destino va a cambiar con frecuencia, como un menú, una página de campaña o un enlace en una pegatina impresa, no reescribas la etiqueta cada vez. Pon una URL de redirección en la etiqueta una sola vez y cambia el destino al que apunta la redirección.
Hacerlo con NFCore
NFCore lee y escribe etiquetas NFC en iOS y Android, sin cuenta y sin subir nada a la nube. Lee primero la etiqueta para ver qué contiene y luego escribe el registro nuevo encima. Un matiz en iOS: Core NFC puede escribir NDEF, pero no ofrece todo lo que ofrece la pila de etiquetas de Android. Descarga NFCore en la App Store o en Google Play.
Preguntas frecuentes
¿Puedo cambiar una etiqueta NFC después de escribirla?
Sí, siempre que no esté bloqueada. Escribir un mensaje NDEF nuevo sustituye al anterior, siempre que quepa en la memoria de la etiqueta.
¿Se puede desbloquear una etiqueta NFC bloqueada?
No cuando el bloqueo es permanente. La documentación de Android describe makeReadOnly como un proceso de un solo sentido que no se puede revertir, así que cuenta con usar una etiqueta nueva.
¿Tengo que borrar la etiqueta antes de volver a escribir?
No. Una escritura nueva sobrescribe el mensaje existente. Borrar y reformatear es opcional si quieres empezar desde cero.
¿Cómo cambio lo que hace una etiqueta sin volver a tocarla?
Escribe una URL de redirección en la etiqueta una sola vez. Después cambias el destino en la redirección y la etiqueta se queda tal cual.