使用Nexus S和ACS ACR122进行卡仿真

时间:2013-12-05 10:31:18

标签: java android nfc contactless-smartcard hce

正如我在标题中所写,我正在尝试使用我的Nexus S,Cyanogenmod 10.1.3和ACS Acr122 usb读卡器进行卡片仿真。 我发现了这篇文章http://nelenkov.blogspot.it/2012/10/emulating-pki-smart-card-with-cm91.html和带有源代码https://github.com/nelenkov/virtual-pki-card的github。 我按照说明操作,发生了一件奇怪的事情。当智能手机在阅读器上时,连接会反复启动和停止,因此演示不起作用,客户端会引发此异常:

Exception in thread "main" java.lang.RuntimeException: javax.smartcardio.CardException: connect() failed
    at org.nick.sepkiclient.Main.main(Main.java:105)
Caused by: javax.smartcardio.CardException: connect() failed
    at sun.security.smartcardio.TerminalImpl.connect(Unknown Source)
    at org.nick.sepkiclient.Main.waitForCard(Main.java:166)
    at org.nick.sepkiclient.Main.main(Main.java:48)
Caused by: sun.security.smartcardio.PCSCException: SCARD_E_READER_UNAVAILABLE
    at sun.security.smartcardio.PCSC.SCardStatus(Native Method)
    at sun.security.smartcardio.CardImpl.<init>(Unknown Source)
    ... 3 more

你对如何解决这个问题有任何想法吗? 感谢

1 个答案:

答案 0 :(得分:0)

不幸的是,ACR 122U NFC读卡器不能用作智能卡读卡器。虽然它使用PC / SC(CCID)将阅读器连接到PC,但大多数版本的ACR 122U都要求您使用特定于阅读器的命令并通过PC / SC进行隧道传输。有关隧道过程和可用命令的详细信息,请参阅this question