0

使用“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 秒)时遇到延迟问题,我认为使用 SHARED MODE 连接可能是线索。

4

1 回答 1

0

使用 Java 的 SmartcardIO,SCARD_SHARE_SHARED默认情况下会打开与智能卡的连接,因此您应该已经以共享模式连接。

然后,您可以使用以独占模式 ( )Card.beginExclusive()重新打开该连接。SCARD_SHARE_EXCLUSIVE

或者,您可以使用以下命令以直接模式 ( ) 打开连接SCARD_SHARE_DIRECT

card = terminal.connect("direct");

但在这种模式下,您还需要使用 IOCTL 命令手动设置通信协议,然后才能将 APDU 发送到卡。

于 2014-03-12T07:04:24.900 回答