Las etiquetas NFC almacenan los datos en un formato especial llamado NDEF (NFC Data Exchange Format) creado por el Foro NFC. Define la estructura de los datos y puede implementarse en NdefMessage o NdefRecord.
Como tal, el formato NDEF permite almacenar múltiples tipos de datos en una sola etiqueta, lo que lo hace perfecto para aplicaciones como los pagos sin contacto y las campañas de marketing. En este artículo analizamos el formato NDEF y sus características clave.
¿Qué es el formato NDEF?
El formato NDEF es una estructura de datos estándar que puede utilizarse para codificar información en las etiquetas NFC. Permite un intercambio de datos impecable entre dispositivos NFC compatibles y etiquetas NFC. El formato de datos consta principalmente de:
- Registros NDEF
- Mensajes NDEF
Registros NDEF
Los registros NDEF están formados por tres componentes principales:
- Un identificador de tipo de registro
- Los datos reales que se almacenan
- Una comprobación de redundancia cíclica (CRC) para garantizar integridad de los datos
Identificador del tipo de registro
El identificador del tipo de registro indica al lector NFC qué tipo de información se está almacenando en ese registro NDEF concreto.
Por ejemplo, si un terminal de pago sin contacto interactúa con una etiqueta NFC, leerá el identificador del tipo de registro y sólo procesará los registros NDEF relacionados con el pago.
El identificador del tipo de registro puede almacenarse en distintos formatos, como registros URI, registros de prestación de servicios, registros URI &MIME o registros Eddystone UDI.
Tipos de datos admitidos por el NDEF
Los tipos de datos que admite el formato NDEF son los registros URI, los registros de tipo MIME y los registros de descubrimiento de servicios. Una etiqueta NFC puede almacenar información diversa o un tipo de datos por registro NDEF.
Por ejemplo, puede utilizar diferentes registros URI para almacenar la URL de su sitio web, la dirección de descarga de una aplicación para Android y la información de contacto de su empresa.
- Registro URI
Este tipo se utiliza únicamente para almacenar datos de Identificadores Uniformes de Recursos (URI). Como su nombre indica, puede utilizarse para señalar a los dispositivos NFC fuentes de diversos tipos de datos URI. Por ejemplo, URL de sitios web, instalaciones de aplicaciones e información de contacto.
- Registro de tipo MIME
MIME son las siglas de Multipurpose Internet Mail Extension. Este registro almacena tanto un identificador uniforme de recursos (URI) como un registro de tipo MIME en el formato NDEF. El tipo MIME se utiliza para determinar cómo manejar la información almacenada en la parte URI del registro, por lo que siempre debe incluirlo cuando almacene contenido en una etiqueta NFC. Por ejemplo, si almacena un registro URI que apunta a un sitio web en una etiqueta NFC, el tipo MIME para este registro debe ser 'text/HTML'.
- Registro de descubrimiento de servicios
Este registro se utiliza para almacenar información de descubrimiento de servicios en el formato NDEF. Esta información puede ser utilizada por los dispositivos NFC "descubribles" para determinar si se encuentran dentro del alcance de los servicios relevantes para ellos.
La información almacenada en un registro NDEF de tipo C puede ser de hasta 27 bytes en total.
- Registro UID Eddystone
El registro de tipo D se utiliza para almacenar un identificador único en forma de URL que se ajusta al protocolo Eddystone. El formato exacto de esta URL dependerá del protocolo Eddystone concreto que se esté utilizando.
¿Qué son los mensajes en formato NDEF?
Los mensajes NDEF son los paquetes de datos que contienen la información almacenada en una etiqueta NFC. Estos mensajes se crean colocando registros NDEF en una estructura contenedora denominada mensaje NDEF.
Cada registro contiene un tipo específico de datos que pueden reconocerse por el valor de su campo de formato "carga útil". Lo más frecuente es que los datos incluyan URL, identificadores uniformes de recursos (URI), mensajes NDEF o tipos MIME para identificar el contenido de los datos.
Los registros NDEF constan de tres partes:
- Encabezado
- Carga útil
- Pie de página
La cabecera define el tipo de registro y dónde comienza la carga útil. La excepción son los registros URI NDEF, que no tienen carga útil. El pie de página es sólo un terminador de cadena que marca el final del registro.
El formato NDEF permite almacenar múltiples tipos de datos en una sola etiqueta, por lo que es perfecto para aplicaciones como los pagos sin contacto y las campañas de marketing.
¿Qué son las especificaciones NDEF?
Varias especificaciones garantizan que las etiquetas y los dispositivos NFC sean compatibles entre sí. Esto es esencial para evitar cualquier problema de interoperabilidad entre distintos fabricantes.
La especificación del Foro NFC define las directrices para escribir, formatear y codificar los datos NDEF. Esto garantiza que todos los fabricantes escribirán contenidos compatibles en las etiquetas NFC.
Una de las partes más importantes de esta especificación es la tabla de tipos de registros NDEF. En ella se especifican los tipos de registros que pueden incluirse en un mensaje NDEF y qué acción debe llevar a cabo el dispositivo cuando encuentre cada uno de ellos. Por ejemplo, si desea escribir un URI en una etiqueta NFC utilizando el formato NDEF, deberá especificarlo en la tabla de tipos de registro; de lo contrario, el dispositivo no sabría qué acción tomar cuando se encontrara con este registro.
Ventajas de utilizar el formato NDEF
La ventaja más evidente del formato NDEF es la compatibilidad. Ofrece un formato ampliamente aceptado que permite a los usuarios de NFC intercambiar datos con facilidad. Otras de sus ventajas son:
- No existe un tamaño mínimo o máximo para un registro NDEF. Esto hace posible almacenar más información en sus etiquetas NFC de la que podría en la mayoría de los demás formatos. Por ejemplo, podría utilizar un registro NDEF para almacenar un vídeo de YouTube o la URL de una galería de fotos, que serían demasiado grandes para muchos otros formatos.
- El formato NDEF es compatible con casi todos los dispositivos y sistemas operativos NFC. La única excepción son los antiguos dispositivos Windows Phone 7, que no admiten el formato NDEF al leer etiquetas NFC.
- Los registros NDEF pueden utilizarse para almacenar varios datos en una sola etiqueta NFC. Si necesita que quepa más información en una sola etiqueta, éste es el formato que debe utilizar. Lo bueno de utilizar NDEF para almacenar su información es que permite a otras etiquetas NFC leer y agregar información de diferentes fuentes.
¿Qué es una tabla de tipos de registro NDEF?
Como hemos comentado anteriormente, la tabla de tipos de registros NDEF define qué tipos de registros pueden incluirse en un mensaje NDEF y qué acciones deben realizar los dispositivos que se encuentren con ellos.
Como ha visto, el formato NDEF permite almacenar múltiples tipos de datos en una sola etiqueta. Esto lo hace perfecto para aplicaciones como los pagos sin contacto y las campañas de marketing, que requieren una amplia gama de formatos de datos diferentes.
Para facilitar este proceso a los desarrolladores, Android ha implementado algunas API que pueden utilizarse para manipular directamente los mensajes NDEF.