2012-08-02 10 views
6

Estoy haciendo una aplicación EMV en el sistema operativo Android (Samsung Galaxy).Android NFC: etiqueta perdida cuando el comando APDU se envió a una tarjeta inteligente

Puedo enviar varios comandos APDU sin problema, pero cuando intento enviar el comando de autenticación interna. Tengo este error: Tag perdido. ¿Tiene alguna idea sobre el propósito de este error? No soy un desarrollador experimentado en Android, es posible que haya olvidado algunas cosas.

  • el comando es correcto.
  • Puedo reemplazar por otro comando, funciona (es decir, puedo recuperar una respuesta).

¿En qué casos se puede romper una comunicación NFC en Android?

Aquí, se puede ver mi problema cuando se envía el comando:

D/ECInfoGrabber (14088): Enviar: 00 88 00 00 04 14 16 67 3D
D/OpenGLRenderer (14088): Lavado de cachés (modo 0) D/dalvikvm (14088): GC_FOR_ALLOC liberado 227K, 4% libre 14298K/14855K, pausa 29ms I/dalvikvm-heap (14088): crece el montón (frag case) a 14.142MB para 115216-byte asignación D/dalvikvm (14088): GC_FOR_ALLOC liberó 3K, 4% libre 14408K/14983K, pausa 15ms

Gracias

Respuesta

10

Una posibilidad es que la respuesta de la tarjeta lleva más tiempo que la configuración predeterminada de tiempo de espera. Esto ocurre a menudo cuando la tarjeta tiene que hacer algunos cálculos internos; típicamente en el caso de operaciones criptográficas como la autenticación.

Puede cambiar el valor de tiempo de espera utilizando IsoDep.setTimeout():

IsoDep iso = IsoDep.get(tag); 
iso.connect(); 
iso.setTimeOut(5000); // 5 sec time out 
iso.transceive(apduCommand); // now send your command 
+1

Gracias. Funciona. Usted es un héroe – user1571292

Cuestiones relacionadas