繁体   English   中英

如何使用Java通过读卡器激活/打开ICC卡?

[英]How to activate/power on ICC card using Java through card reader?

我正在编写一个应用程序来与目前使用Java的智能卡进行交互。 我有一台OMRON V2BF系列读卡器。 该应用程序在Debian上运行。

我尝试使用Java智能卡I / O API尝试建立与智能卡的连接。

但我无法检测/获取任何卡终端使用

    TerminalFactory factory = TerminalFactory.getDefault();
    List<CardTerminal> terminals = factory.terminals().list();

我还尝试通过向OMRON阅读器发送命令包来“按下并激活(冷复位)ICC”,但响应总是“否定”。

我可以知道我做错了哪一部分? 任何建议将不胜感激!

factory.terminals().list()默认只显示PCSC兼容设备。 我没有看到有关当前阅读器的PCSC支持的任何信息。 请参阅文档或供应商。

您的智能卡应该是与ISO 7816-4兼容的智能卡,以便与javax.smartcardio配合使用,存储卡将无法使用。 javax.smartcardio基本上用于CommandAPDU和ResponseAPDU,它们是“处理器”卡的ISO 7816-4兼容数据结构。

您可能会使用读卡器制造商提供的接口规范通过串行接口与读卡器进行通信。 您可以使用Java Communications API来执行此操作。

请注意,许多制造商将提供C / C ++甚至.NET中的示例代码和库,在这种情况下,它可能是切换编程语言/平台或围绕本机代码创建JNI包装器的选项。

如果您正在为处理器卡(例如信用卡)编写,您甚至可以自己创建一个兼容javax.smartcardio的终端并将其插入终端列表中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM