Incrustar presentación
Descargado 65 veces

































































![Mecanismo anticolisión.
Centro Nacional de Investigación y Desarrollo Tecnológico
77
En el modo de operación activo el dispositivo
target tras recibir la señal del initiator debe
esperar un tiempo de guardia Tg antes de enviar
la respuesta. Este tiempo se encuentra en el
intervalo:
768/fc < Tg < 2559/fc + n (512/fc)
Durante el tiempo Tg el dispositivo target realiza
un censado para asegurar que no hay otros
dispositivos utilizando el canal.
En caso de estarlo el dispositivo target espera un
tiempo de guardia Tg > 1024/fc antes de intentar
enviar su respuesta.
n es un numero aleatorio [0,3].](https://image.slidesharecdn.com/nfccompleto-141011144404-conversion-gate01/85/Tutorial-Near-Field-Communication-NFC-66-320.jpg)







































![Escribiendo un tag NFC
Centro Nacional de Investigación y Desarrollo Tecnológico
118
La primera acción es sencilla de realizar y se deja como
actividad a los presentes. Para la segunda acción se puede
mencionar que el método habilitarModoEscritura() agrega un
filtro a la actividad para capturar los intents
ACTION_TAG_DISCOVERED, lo cual se logra con las
siguientes líneas de código:
1. modoEscritura = true;
2. PendingIntent intentPendiente = PendingIntent.getActivity(this, 0, new
Intent(this,
getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0);
3. IntentFilter tagDetectado = new
IntentFilter(NfcAdapter.ACTION_TAG_DISCOVERED);
4. IntentFilter[] filtros = new IntentFilter[] { tagDetected };
5. adaptadorNFC.enableForegroundDispatch(this, intentPendiente, filtros,
null);](https://image.slidesharecdn.com/nfccompleto-141011144404-conversion-gate01/85/Tutorial-Near-Field-Communication-NFC-106-320.jpg)


![Escribiendo un tag NFC
Centro Nacional de Investigación y Desarrollo Tecnológico
121
Si el tag no es de solo lectura y es compatible con NDEF no existirá
algún problema para continuar con el paso siguiente que consiste en
es escribir un mensaje NDEF en el tag. Las siguientes líneas de
código crean un mensaje NDEF con un registro el cual tiene un ID de
“1001” y un payload que es el texto que escribió el usuario:
1. String id="1001";
2. byte[] payload = texto.getBytes();
3. byte[] RDT_Text = NdefRecord.RTD_TEXT;
4. NdefRecord registroNFC = new
NdefRecord(NdefRecord.TNF_WELL_KNOWN, RDT_Text, id.getBytes(),
payload);
5. NdefMessage mensajeNFC = new NdefMessage(new NdefRecord[] {
registroNFC});](https://image.slidesharecdn.com/nfccompleto-141011144404-conversion-gate01/85/Tutorial-Near-Field-Communication-NFC-109-320.jpg)



![Leyendo un tag NFC
Centro Nacional de Investigación y Desarrollo Tecnológico
125
Además otra diferencia es la forma en que se manipula el intent en el
método onNewIntent(Intent intent), esto porque primero se obtiene un
mensaje NDEF, después se obtiene el primer registro y por ultimo se
obtiene el payload. Lo anterior se muestra en las siguientes líneas de
cPóadricgeola:ble[] rawMsgs =
intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
if(rawMsgs!=null){
NdefMessage msg = (NdefMessage) rawMsgs[0];
NdefRecord registro = msg.getRecords()[0];
String textoPlano= new String(registro.getPayload());
if(textoPlano!=null && !textoPlano.equals("")){
edtText2.setText(textoPlano);
mostrarMensaje("El tag fue leído correctamente");
}else{
mostrarMensaje("El tag esta vacio o tiene un formato incompatible.");
}
}](https://image.slidesharecdn.com/nfccompleto-141011144404-conversion-gate01/85/Tutorial-Near-Field-Communication-NFC-113-320.jpg)




El documento detalla la tecnología Near Field Communication (NFC), que permite la comunicación inalámbrica de corto alcance entre dispositivos. Se describen sus características, modos de operación, especificaciones técnicas y arquitectura, así como el estándar de intercambio de datos NDEF. Además, se aborda la función del NFC Forum en la estandarización y regulación del uso de NFC en la electrónica de consumo.

































































![Mecanismo anticolisión.
Centro Nacional de Investigación y Desarrollo Tecnológico
77
En el modo de operación activo el dispositivo
target tras recibir la señal del initiator debe
esperar un tiempo de guardia Tg antes de enviar
la respuesta. Este tiempo se encuentra en el
intervalo:
768/fc < Tg < 2559/fc + n (512/fc)
Durante el tiempo Tg el dispositivo target realiza
un censado para asegurar que no hay otros
dispositivos utilizando el canal.
En caso de estarlo el dispositivo target espera un
tiempo de guardia Tg > 1024/fc antes de intentar
enviar su respuesta.
n es un numero aleatorio [0,3].](https://image.slidesharecdn.com/nfccompleto-141011144404-conversion-gate01/85/Tutorial-Near-Field-Communication-NFC-66-320.jpg)







































![Escribiendo un tag NFC
Centro Nacional de Investigación y Desarrollo Tecnológico
118
La primera acción es sencilla de realizar y se deja como
actividad a los presentes. Para la segunda acción se puede
mencionar que el método habilitarModoEscritura() agrega un
filtro a la actividad para capturar los intents
ACTION_TAG_DISCOVERED, lo cual se logra con las
siguientes líneas de código:
1. modoEscritura = true;
2. PendingIntent intentPendiente = PendingIntent.getActivity(this, 0, new
Intent(this,
getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0);
3. IntentFilter tagDetectado = new
IntentFilter(NfcAdapter.ACTION_TAG_DISCOVERED);
4. IntentFilter[] filtros = new IntentFilter[] { tagDetected };
5. adaptadorNFC.enableForegroundDispatch(this, intentPendiente, filtros,
null);](https://image.slidesharecdn.com/nfccompleto-141011144404-conversion-gate01/85/Tutorial-Near-Field-Communication-NFC-106-320.jpg)


![Escribiendo un tag NFC
Centro Nacional de Investigación y Desarrollo Tecnológico
121
Si el tag no es de solo lectura y es compatible con NDEF no existirá
algún problema para continuar con el paso siguiente que consiste en
es escribir un mensaje NDEF en el tag. Las siguientes líneas de
código crean un mensaje NDEF con un registro el cual tiene un ID de
“1001” y un payload que es el texto que escribió el usuario:
1. String id="1001";
2. byte[] payload = texto.getBytes();
3. byte[] RDT_Text = NdefRecord.RTD_TEXT;
4. NdefRecord registroNFC = new
NdefRecord(NdefRecord.TNF_WELL_KNOWN, RDT_Text, id.getBytes(),
payload);
5. NdefMessage mensajeNFC = new NdefMessage(new NdefRecord[] {
registroNFC});](https://image.slidesharecdn.com/nfccompleto-141011144404-conversion-gate01/85/Tutorial-Near-Field-Communication-NFC-109-320.jpg)



![Leyendo un tag NFC
Centro Nacional de Investigación y Desarrollo Tecnológico
125
Además otra diferencia es la forma en que se manipula el intent en el
método onNewIntent(Intent intent), esto porque primero se obtiene un
mensaje NDEF, después se obtiene el primer registro y por ultimo se
obtiene el payload. Lo anterior se muestra en las siguientes líneas de
cPóadricgeola:ble[] rawMsgs =
intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
if(rawMsgs!=null){
NdefMessage msg = (NdefMessage) rawMsgs[0];
NdefRecord registro = msg.getRecords()[0];
String textoPlano= new String(registro.getPayload());
if(textoPlano!=null && !textoPlano.equals("")){
edtText2.setText(textoPlano);
mostrarMensaje("El tag fue leído correctamente");
}else{
mostrarMensaje("El tag esta vacio o tiene un formato incompatible.");
}
}](https://image.slidesharecdn.com/nfccompleto-141011144404-conversion-gate01/85/Tutorial-Near-Field-Communication-NFC-113-320.jpg)


