您的問題是,HID Omnikey失敗,以適當「冷」重置智能卡。
通過以下Java代碼修剪,您可以重置HID Omnikey閱讀器CL。
import jnasmartcardio.Smartcardio;
import javax.smartcardio.*;
import javax.xml.bind.DatatypeConverter;
public class OMNIKEYConfiguration {
public static void main(String... args) throws Exception {
TerminalFactory factory = TerminalFactory.getInstance("PC/SC", null, new Smartcardio());
String terminalName = "OMNIKEY CardMan 5x21-CL 0";
CardTerminal terminal = factory.terminals().getTerminal(terminalName);
// Connect directly to reader
Card card = terminal.connect("DIRECT");
int code = 3224092; // #define IOCTL_CCID_ESCAPE SCARD_CTL_CODE(3500)
byte[] command = DatatypeConverter.parseHexBinary("0300"); // 0300 - ON; 0301 - OFF
byte[] resp = card.transmitControlCommand(code, command);
System.out.println(DatatypeConverter.printHexBinary(resp));
card.disconnect(true);
}
}
使用命令「0x0300」打開天線,否則使用「0x0301」關閉天線。
對於冷重置,請先關閉然後再打開命令。
你試過不同的卡嗎? – guidot
是的,我嘗試了不同的卡片,起初它被檢測到,並且我成功讀取/寫入數據,然後再次插入後,它停止響應,並提供與上面相同的錯誤消息。 –
總是檢查你的命令發送的長度.. – shadygoneinsane