【发布时间】:2013-06-25 22:12:28
【问题描述】:
我正在尝试使用javax.smartcardio 建立 NFC 连接。我可以在 Windows 上成功运行此代码,但无法在 Mac 上运行。似乎问题是Mac的驱动程序,但我想知道是否有解决方案。
TerminalFactory factory;
factory = TerminalFactory.getDefault();
CardTerminal terminal = factory.terminals().list().get(0);
card = terminal.connect("direct");`
注意:我必须使用直接命令。
编辑:为什么我必须使用direct命令是我需要在没有卡时发送APDU命令被呈现。在 T=0、T=1 等其他协议中,当读卡器上没有卡(或设备)时,我无法向读卡器发送 APDU 命令。
【问题讨论】:
-
您能否指出指定此
"direct"protocol 的文档?您可能需要专有的安全提供程序才能使用此协议。 -
这看起来没有记录。另一方面,有一些使用此协议的示例(我也有一个仅适用于 Windows 的示例 :))
-
我认为有一种方法可以做到这一点:注册一个提供您自己的终端实现的提供程序(以便能够使用
getDefault()方法。然后在返回Terminal。如果我没记错的话,javax.smartcardio可以扩展为Provider。