代码之家  ›  专栏  ›  技术社区  ›  HalSeldon

ACR38读卡器和SLE4442 Java延迟

  •  1
  • HalSeldon  · 技术社区  · 11 年前

    我有智能卡usb读卡器(ACR38和ACR38 CCID)。我有一些C#代码,可以使用winscard.dll((SCardEstablishContext、SCardConnect、SCardControl方法)完美地连接和发送apdu命令。

    我需要用java来实现这一点,我使用javax.smartcardioapi,其中一些代码类似于: PCSC sample in java

    读卡器和插入的卡检测正常,但当我尝试连接时会出现延迟(15-20秒)。此延迟仅在首次插入卡时出现。若我提取并插入同一张卡,并没有延迟。如果我取出卡片并插入另一张,再次延迟。我无法连接前15-20秒,无论java程序是否运行。

    当读卡器/卡连接时,我可以完美地发送apdu命令。

    否则,使用C#和winscard.dll api,不会有延迟。

    我使用win7、win8、ACR38读取器、ACR38 CCID读取器进行测试。。。

    为什么我会延迟?

    1 回复  |  直到 11 年前
        1
  •  0
  •   jariq    11 年前

    如果这种情况仅发生在您所描述的第一次插入卡时,则其他进程可能会对读卡器打开独占连接。它可能是windows内置的证书传播服务或某些类似的应用程序,是您可能安装的卡中间件的一部分。也可能是Windows更新试图为您的卡下载微型驱动程序。