使用串行端口连接智能卡时,CadClientInterface.powerUp()挂起

时间:2018-05-08 09:40:19

标签: smartcard javacard smartcard-reader contactless-smartcard

我正在尝试使用以下代码使用串口连接到我的智能卡:

String port = "COM1"; // serial port
CommPortIdentifier portId = CommPortIdentifier.getPortIdentifier(port);

String appname = "CadClient";
int timeout = 30000;

CommPort commPort = portId.open(appname, timeout);              
InputStream is = commPort.getInputStream(); 
OutputStream os = commPort.getOutputStream();

cad = CadDevice.getCadClientInstance(CadDevice.PROTOCOL_T1, is, os);

//...hangs here for unlimited time
cad.powerUp();

为什么它停留在powerUp()的任何帮助。感谢

2 个答案:

答案 0 :(得分:0)

它挂起的最常见原因是卡没有应答重置,即没有从卡接收到ATR。这是在powerUP()上完成的。

这可能是由于某些其他APDU客户端使用了非开放端口或端口。

答案 1 :(得分:0)

转到您的设备属性并检查"不要打开APDU控制台"复选框。

这应该是这样的:

enter image description here

enter image description here

enter image description here