1

不知道为什么执行中会出现这个异常

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 架构中安装那个包吗?或以某种方式解决我的问题?

谢谢

4

1 回答 1

1

如果您有同样的问题,这就是解决方案。

  1. 第一次,您必须安装 ACR122 驱动程序。在这种情况下,我们使用的是树莓派,所以我们必须下载下一个驱动程序:http ://www.acs.com.hk/download-driver-unified/6258/ACS-Unified-Driver-Lnx-Mac-108-压缩包

  2. 将文件解压缩到一个文件夹中,转到“acsccid-1.XX”并运行“./configure”

  3. 打开并编辑“/etc/modprobe.d/”中的 raspi-blacklist.conf 并在末尾添加以下两行:

    黑名单 NFC

    黑名单 pn533

  4. 重启树莓派

于 2014-12-01T09:59:06.300 回答