Índice

Leer un tag NFC

La lectura de un tag NFC se realiza una vez se ha decidido qué actividad se hace cargo de este. El tag y su contenido se proveen a la actividad en la intención, que contiene también la acción que permite determinar qué tipo de mensaje contiene el tag; basta con comprobar el valor de la acción de la intención para saber qué método utilizar con objeto de descifrar el mensaje o los mensajes.

if(intent.getAction().equals(NfcAdapter.ACTION_NDEF_DISCOVERED)) 
   Log.d(TAG,"Lectura de un tag NDEF");  
else   
if(intent.getAction().equals(NfcAdapter.ACTION_TECH_DISCOVERED)) 
   Log.d(TAG,"Lectura de un tag TECH");

Veremos con detalle la lectura de los distintos tipos de mensajes NDEF.

1. Determinar el contenido de un tag NDEF

En el caso de un tag que contenga mensajes NDEF, la lectura se lleva a cabo recuperando en forma de ParcelableArrayExtra el valor parseable con nombre NfcAdapter.EXTRA_NDEF_MESSAGES contenido en la intención y, a continuación, convirtiendo cada elemento de la tabla en un objeto de tipo NdefMessage (no hay que olvidar que un tag NDEF puede contener varios mensajes con formato NDEF).

Parcelable[] parcelableNedfMessages =   
intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);  
  
if(parcelableNedfMessages==null)  
   return;  
  
NdefMessage[] messages =   
   new NdefMessage[parcelableNedfMessages.length];  
   ...