覆盆子Pi上的Java TerminalFactory和ACR122U NFC阅读器

时间:2015-04-13 12:12:43

标签: java raspberry-pi pcsc acr122 lib-nfc

我正在使用Raspberry Pi在Java中构建NFC读卡器小程序。 出于某种原因,Java没有“看到”整个终端,而nfc-list和pcsc_scan都看到连接的阅读器。

pi@raspberrypi ~ $ sudo nfc-poll nfc-poll uses libnfc 1.7.1 NFC reader: ACS / ACR122U PICC Interface opened NFC device will poll during 30000 ms (20 pollings of 300 ms for 5 modulations) ISO/IEC 14443A (106 kbps) target:
    ATQA (SENS_RES): 00  04
       UID (NFCID1): 3b  3a  34  06

和pcsc_scan

pi@raspberrypi ~/pcsc-tools-1.4.23 $ ./pcsc_scan
PC/SC device scanner
V 1.4.23 (c) 2001-2011, Ludovic Rousseau <ludovic.rousseau@free.fr>
Compiled with PC/SC lite version: 1.8.13
Using reader plug'n play mechanism
Scanning present readers...
0: ACS ACR122U 00 00

Mon Apr 13 12:06:54 2015

我的Java代码看起来像这样,它是一个小脚本,用于查看终端是否有效。

import java.util.List;
import javax.smartcardio.*;

public class ReadCard {

        public static void main(String[] argv) throws Exception {

                // show the list of available terminals
                TerminalFactory factory = TerminalFactory.getDefault();

                List<CardTerminal> terminals = factory.terminals().list();
                System.out.println("Terminals: " + terminals);
        }
}

我还尝试使用以下命令手动选择pcsc库:

pi@raspberrypi ~ $ java -Dsun.security.smartcardio.library=/usr/local/lib/libpcsclite.so.1 ReadCard
Terminals: []
pi@raspberrypi ~ $ whereis libpcsclite.so.1
libpcsclite.so: /usr/local/lib/libpcsclite.so.1 /usr/local/lib/libpcsclite.so

不幸的是,这也不起作用。

寻找建议下一步该做什么,提前谢谢!

1 个答案:

答案 0 :(得分:0)

这里也一样。附加提示:该指示灯未激活。

但是将CardReader连接到活动的USB集线器对我有用(*)。 LED亮起,发出哔声,并且java可以找到终端。

(*可以工作几个小时:-O)

编辑:记录:

重新安装数据包使我的设备恢复运行。每次更改USB端口时,我都必须重新安装数据包。

setBorder

(我没有时间确定导致...的数据包)