10

我正在 Android 操作系统(三星 Galaxy)上做一个 EMV 应用程序。

我可以毫无问题地发送几个 APDU 命令,但是当我尝试发送内部身份验证命令时。我有这个错误:标签丢失。您对此错误的目的有任何想法吗?我不是 Android 上的实验开发人员,可能我忘记了一些东西。

  • 命令是正确的。
  • 我可以用另一个命令替换它,它可以工作(我的意思是我可以恢复响应)。

在哪些情况下,Android 上的 NFC 通信会中断?

在这里,您可以在发送命令时看到我的问题:

D/ECInfoGrabber(14088):发送:00 88 00 00 04 14 16 67 3D
D/OpenGLRenderer(14088):刷新缓存(模式 0) D/dalvikvm(14088):GC_FOR_ALLOC 释放 227K,4% 释放 14298K/14855K,暂停29ms I/dalvikvm-heap(14088):将堆(碎片情况)增加到 14.142MB,分配 115216 字节 D/dalvikvm(14088):GC_FOR_ALLOC 释放 3K,释放 4% 14408K/14983K,暂停 15ms

谢谢

4

1 回答 1

17

一种可能性是卡的响应比默认超时设置花费的时间更长。这通常发生在卡片必须进行一些内部计算时;通常在加密操作(例如身份验证)的情况下。

您可以使用以下方法更改超时值IsoDep.setTimeout()

 IsoDep iso = IsoDep.get(tag);
 iso.connect();
 iso.setTimeOut(5000); // 5 sec time out
 iso.transceive(apduCommand); // now send your command 
于 2012-08-03T21:31:26.717 回答