我不知道为什么在执行中出现此异常
javax.smartcardio.CardException: list() failed
at sun.security.smartcardio.PCSCTerminals.list(PCSCTerminals.java:126)
at javax.smartcardio.CardTerminals.list(CardTerminals.java:72)
at prueba.ClaseNFC.doCardReaderCommunication(ClaseNFC.java:41)
at prueba.Prueba.main(Prueba.java:20)
Caused by: sun.security.smartcardio.PCSCException: SCARD_E_NO_READERS_AVAILABLE
at sun.security.smartcardio.PCSC.SCardListReaders(Native Method)
at sun.security.smartcardio.PCSCTerminals.list(PCSCTerminals.java:80)
... 3 more
代码是:
TerminalFactory terminalFactory;
terminalFactory = TerminalFactory.getDefault();
System.out.println(terminalFactory);
List<CardTerminal> terminals = terminalFactory.terminals().list();
System.out.println("Terminals: " + terminals);
if (terminals.isEmpty()) {
throw new Exception("No card terminals available");
}
这很奇怪,因为RPi通过命令“ lsusb”识别读卡器,其中显示“ Bus 001 Device 007:ID 072f:2200 Advanced Card Systems,Ltd”。
我几天前一直在阅读,人们从ACR122U-http://www.acs.com.hk/en/products/3/acr122u-usb-nfc-reader/的页面谈论安装PC / SC软件包,这将解决问题。实际上,该软件包对amd64和i386体系结构很有用,而RPi具有带有Raspbian(Debian / Linux)的ARM体系结构。
我的问题是,您能以我的方式在ARM体系结构中安装该软件包吗?或以某种方式解决我的问题?
谢谢
最佳答案
如果您有相同的问题,这是解决方案。
第一次,您必须安装ACR122驱动程序。在这种情况下,我们使用的是Raspberry,因此我们必须下载下一个驱动程序:http://www.acs.com.hk/download-driver-unified/6258/ACS-Unified-Driver-Lnx-Mac-108-P.zip。
将文件解压缩到文件夹中,转到“ acsccid-1.X.X”并运行“ ./configure”
在“ /etc/modprobe.d/”中打开并编辑raspi-blacklist.conf,并在末尾添加以下两行:
黑名单nfc
黑名单pn533
重新启动树莓
关于java - 树莓无法与ACR122U通信,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25899272/