使用“javax.smartcardio.CardTerminal”我无法使用SCARD_SHARE_SHARED参数连接智能卡...连接方法没有该参数......
public abstract Card connect(String protocol) throws CardException
建立与卡的连接。如果连接先前已建立指定的协议,则此方法返回与上一次调用相同的Card对象。 参数: protocol - 要使用的协议(“T = 0”,“T = 1”或“T = CL”)或“”以使用任何可用协议进行连接。*
有没有办法执行将smarcard与javax.smartcardio连接的共享模式?
连接SLEE4442智能卡时出现延迟问题(卡插入后15-20秒),我认为连接共享模式可能是线索。
答案 0 :(得分:0)
使用Java的SmartcardIO,默认情况下,与智能卡的连接以SCARD_SHARE_SHARED
开头,因此您应该已经以共享模式连接。
然后,您可以使用Card.beginExclusive()
以独占模式(SCARD_SHARE_EXCLUSIVE
)重新打开该连接。
或者您可以使用以下方式以直接模式(SCARD_SHARE_DIRECT
)打开连接:
card = terminal.connect("direct");
但在该模式下,您还需要先使用IOCTL命令手动设置通信协议,然后才能将APDU发送到卡上。