【问题标题】:Javax.SmartCardIO - TerminalFactory replugged device not foundJavax.SmartCardIO - 未找到 TerminalFactory 重新插入的设备
【发布时间】:2016-01-22 22:09:31
【问题描述】:

我的程序有点问题。 第一次插入阅读器一切正常,程序找到阅读器,但是在程序中我断开阅读器,然后重新插入,然后再次运行搜索,程序无法找到读者。我只有 CardException 和消息:list() failed

有人知道怎么解决吗?

    TerminalFactory factory = TerminalFactory.getDefault();
    System.out.println(factory);
    List<CardTerminal> terminals = new ArrayList<CardTerminal>();
    if (factory == null) {
        return terminals;
    }
    try {
        terminals = factory.terminals().list();
    } catch (CardException e) {
        System.out.println(e.getMessage());
    }

我也试过这个:

    try {
        factory = TerminalFactory.getInstance("PC/SC", null, new jnasmartcardio.Smartcardio());
    } catch (NoSuchAlgorithmException e1) {
        e1.printStackTrace();
    }

谢谢帮助。

【问题讨论】:

标签: java smartcard smartcard-reader


【解决方案1】:

在不知道如何使用代码的 sn-p 的情况下,请阅读 jnasmartcardio 和上下文的生命周期。在最后一个读取器断开连接后,Windows 会终止资源管理器(从而使句柄无效)。

【讨论】:

  • 我在睡眠循环中执行 1500 毫秒。是否有可能在不使用 jnasmartcardio 的情况下以某种方式解决这个问题?它仅在 Windows 10、Windows 8.1 和 Windows 8 上发生。如何手动重置对象 TerminalFactory 以获取连接到计算机的设备的新列表?
猜你喜欢
  • 1970-01-01
  • 2016-10-06
  • 2014-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-06
  • 2014-10-13
  • 2015-08-29
相关资源
最近更新 更多