我正在 Android OS (Samsung Galaxy) 上做一个 EMV 应用程序。
我可以毫无问题地发送多个 APDU 命令,但是当我尝试发送内部身份验证命令时。我有这个错误:标签丢失。你知道这个错误的目的吗?我不是 Android 上的实验开发人员,可能我忘记了一些东西。
- 命令正确。
- 我可以用另一个命令替换,它有效(我的意思是我可以恢复响应)。
在哪些情况下,Android 上的 NFC 通信会中断?
在这里,你可以看到我发送命令时的问题:
D/ECInfoGrabber(14088): Send: 00 88 00 00 04 14 16 67 3D
D/OpenGLRenderer(14088): Flushing caches (mode 0) D/dalvikvm(14088): GC_FOR_ALLOC freed 227K, 4% free 14298K/14855K, paused 29ms I/dalvikvm-heap(14088): Grow heap (frag case) to 14.142MB for 115216-byte allocation D/dalvikvm(14088): GC_FOR_ALLOC freed 3K, 4% free 14408K/14983K, paused 15ms
谢谢
最佳答案
一种可能是卡的响应花费的时间比默认超时设置长。这通常发生在卡必须进行一些内部计算时;通常用于身份验证等加密操作。
您可以使用 IsoDep.setTimeout()
更改超时值:
IsoDep iso = IsoDep.get(tag);
iso.connect();
iso.setTimeOut(5000); // 5 sec time out
iso.transceive(apduCommand); // now send your command
关于安卓 NFC : Tag lost when APDU command sent to a smart card,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11776919/