我正在尝试使用javax.smartcardio
建立NFC连接。我可以在Windows上成功运行此代码,但我无法在Mac上运行它。似乎问题是Mac的驱动程序,但我想知道是否有解决方案。
TerminalFactory factory;
factory = TerminalFactory.getDefault();
CardTerminal terminal = factory.terminals().list().get(0);
card = terminal.connect("direct");`
注意:我必须使用 直接 命令。
修改:为什么我必须使用 直接 命令,我需要在没有卡时发送 APDU 命令被表达。在其他协议中,如T = 0,T = 1,当读卡器上没有卡(或设备)时,我无法向阅读器发送APDU命令。
答案 0 :(得分:1)
你必须使用"direct"
命令非常有趣 - 好吧,你说命令但实际上它是传输协议字符串。不幸的是,API说不然(检查到Java 7 SE)。
这是connect(String)
方法的JavaDoc的摘录:
protocol
- 使用("T=0"
,"T=1"
或"T=CL"
)或"*"
使用任何可用协议进行连接的协议。
如果不确定,我会选择"T=1"
,它应该与现代卡和大多数PCSC读卡器兼容。