Volver a las guías

Errores al escribir una etiqueta NFC: solo lectura frente a etiqueta perdida

Un error de solo lectura indica que la etiqueta está bloqueada para siempre. Una etiqueta perdida es una conexión cortada: reintenta. Así distingues cada caso.

Publicado

Un error de solo lectura significa que la etiqueta está bloqueada y no acepta escrituras, así que necesitas otra etiqueta. Un error de etiqueta perdida significa que la conexión se cortó a mitad de la operación, así que mantienes todo quieto y vuelves a intentarlo. En pantalla pueden parecerse. Pero uno es permanente y el otro es simplemente un reintento.

Qué significa un error de solo lectura

Una etiqueta bloqueada no se puede escribir. La guía de solución de problemas de WakDev lo dice sin rodeos: confirma el bloqueo leyendo la etiqueta y usa una etiqueta distinta.

El bloqueo, además, es de un solo sentido. La referencia de Ndef de Android indica que makeReadOnly() marca el campo de capacidades (CC) como solo lectura y, cuando es posible, activa de forma permanente los bits de bloqueo. En sus palabras: es un proceso de un solo sentido que no se puede revertir. La llamada devuelve false cuando la etiqueta no se puede dejar en solo lectura.

El propio chip funciona igual. En una NTAG213, una respuesta de la comunidad de NXP explica que los bits de bloqueo son irreversibles: un bit puesto a 1 no vuelve a 0 por NFC. Las páginas bloqueadas no se pueden reprogramar con ningún comando de escritura. Otros chips pueden comportarse de otra manera, así que revisa la hoja de datos del tuyo.

Si no estás seguro de que una etiqueta esté realmente bloqueada, mira cómo comprobar si una etiqueta está realmente bloqueada. Y una etiqueta bloqueada no es lo mismo que una protegida con contraseña: la protección con contraseña y el bloqueo permanente funcionan de forma distinta.

Qué significa un error de etiqueta perdida

Un error de etiqueta perdida significa que la etiqueta salió del campo del teléfono mientras se escribía. En Android, writeNdefMessage lanza TagLostException si la etiqueta sale del campo. Lanza FormatException si el mensaje está mal formado e IOException ante otros fallos de entrada y salida.

El estado de bloqueo de la etiqueta no es el problema aquí. WakDev indica que moverse durante la operación puede causar errores, y la solución es sujetar la etiqueta sin moverla durante toda la lectura o escritura y volver a intentarlo. Si sigue ocurriendo, revisa dónde está la antena NFC de tu teléfono y si tu funda estorba.

Cómo distinguirlos

Fíjate en el patrón, no en el texto del mensaje. Un error de etiqueta perdida se puede recuperar, mientras que un bloqueo es permanente, así que conviene saber cuál tienes antes de reintentar diez veces o tirar una etiqueta buena:

  • Falla siempre con esa etiqueta, aunque no te muevas: sospecha de un bloqueo. Prueba con una etiqueta nueva del mismo tipo. Si la nueva se escribe bien, la primera está bloqueada o no se puede escribir por otra razón.
  • Falla a veces y funciona cuando no te mueves: es un problema de etiqueta perdida. Recoloca y reintenta.
  • Falla con todas las etiquetas: lo más probable es que el problema sea el teléfono, la funda o la configuración, no las etiquetas.

Las apps también pueden comprobarlo antes de escribir. En iPhone, Core NFC tiene un estado de solo lectura que una app puede consultar antes de escribir, de modo que una etiqueta bloqueada aparece como bloqueada y no como una escritura que falla al azar. Para escribir etiquetas tú mismo, consigue NFCore en la App Store o en Google Play.

Otras causas que se parecen

WakDev enumera algunas razones más por las que falla una escritura:

  • Memoria insuficiente: confirma la capacidad de la etiqueta antes de escribir.
  • Tarjetas protegidas: las tarjetas de acceso, de crédito y de transporte están protegidas contra lectura, escritura y copia. Usa una etiqueta estándar sin protección.
  • Tecnología de etiqueta incompatible: tu dispositivo puede no ser compatible con ese tipo de etiqueta.
  • Interferencias o daños: las fundas, las baterías, las superficies metálicas y las etiquetas dobladas, cortadas o quemadas pueden bloquear la señal.

Qué hacer a continuación

Si es etiqueta perdida, sujeta el teléfono y la etiqueta sin moverlos, quita la funda si hace falta, aleja el metal e inténtalo de nuevo. Si es solo lectura, el bloqueo no se puede deshacer en las etiquetas habituales, así que usa una etiqueta nueva y piénsalo dos veces antes de bloquear la siguiente.

Preguntas frecuentes

¿Puedo desbloquear una etiqueta NFC de solo lectura?

En las etiquetas NTAG habituales, los bits de bloqueo activados por NFC no se pueden borrar, así que lo normal es usar una etiqueta nueva. Algunos chips se comportan de otra manera, por lo que conviene revisar la hoja de datos del tuyo.

¿Un error de etiqueta perdida significa que la etiqueta está rota?

Normalmente no. Significa que la conexión se cortó durante la operación, casi siempre porque se movió el teléfono o la etiqueta. Mantén ambos quietos y vuelve a intentarlo.

¿Por qué la misma escritura falla con una etiqueta y funciona con otra?

La etiqueta que falla puede estar bloqueada, ser demasiado pequeña para los datos, estar dañada o ser una tarjeta protegida. Si una etiqueta del mismo tipo funciona, el problema está en la primera etiqueta, no en tu teléfono.