如果有人想编写一个与物理设备交互的Java应用程序,特别是读者(例如,当你进入酒店,健身房,银行等等,并且你将卡片通过读卡器并且应用程序发现你在数据库)这是怎么做到的?
是否有java api与读者进行交互并获取卡片数据?
当公司创建一个阅读器(物理设备)时,它是否提供相关的api?
是否从应用程序员中抽象出了物理细节?
我需要在java中与读者进行交互,但我不知道如何开始
任何意见都非常欢迎!
由于
答案 0 :(得分:4)
您可以开始使用javax.smartcardio包。
这是允许智能卡交互的官方Oracle产品。这并不能解决设备通信的一般问题(在Unix中,只需打开具有正确权限的/dev/whatever0
,因为它是一个文件),但可以帮助您解决智能卡问题。< / p>
答案 1 :(得分:3)
这取决于平台。例如,ORACLE声明Java Communications 3.0 API可以使用:
Java Communications API(也称为javax.comm)为应用程序提供对RS-232硬件(串行端口)的访问以及对IEEE-1284(并行端口),SPP模式的有限访问。
这可以给你一个启动。
答案 2 :(得分:0)
这里有智能卡读卡器的通用USB驱动程序,以及可以检测插入新读卡器的守护程序,以及读卡器启动与智能卡连接时的一些诊断信息(通过联系人或非接触式/ NFC )。 http://www.linuxnet.com/
然后jpcsc可以用作卡的Java API,因此您可以读写。您从读卡器硬件中抽象出来,但您仍然需要了解很多关于智能卡的具体信息 - 它使用哪个版本的Javacard / GlobalPlatform,如果要建立安全连接,将使用加密密钥,等
或者您可以从智能卡制造商(如G&amp; G)购买完整的开发环境,包括卡,读卡器和IDE(通常基于Eclipse)。 D,Oberthur,金雅拓......