【发布时间】:2014-09-17 19:57:21
【问题描述】:
不知道为什么在执行中会出现这个异常
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 的页面安装 PC/SC 包 - http://www.acs.com.hk/en/products/3/acr122u-usb-nfc-reader/ - 它会解决问题。实际上,该软件包对 amd64 和 i386 架构很有用,并且 RPi 具有带有 Raspbian (Debian/Linux) 的 ARM 架构。
我的问题是,您能帮我在 ARM 架构中安装该软件包吗?或以某种方式解决我的问题?
谢谢
【问题讨论】:
-
你真的解决了这个问题吗?我想如果没有 PCSC 兼容的驱动程序,你就无法让它工作......当然,除非你自己编写一个
smartcardio兼容的Terminal类。 -
是的,我解决了,我要发布解决方案
标签: java debian raspberry-pi smartcard acr122