场景: 需要使用Android阅读SmartCard。
我正在尝试使用5427智能卡读卡器在Android中创建应用智能卡。我使用OTG / USB连接了该读卡器。从Play商店我已经下载了这个应用程序ATR分析仪,它成功地读取了卡片。我想做类似的应用程序,但无法找到任何线索因为下面的应用程序使用的库不可用 https://play.google.com/store/apps/details?id=com.scdroid.atranalyzer&hl=en
在Windows上,我可以使用java javax-smartcardio创建一个应用程序,它可以正常工作。此外,我能够在C#.net控制台上进行应用程序,可以读取卡片。
我搜遍了所有地方javax-smartcardio无法在我发现的android中使用。
还有另一种选择,使用带有覆盆子Pi的java来实现相同的结果,以及根据我的要求,android似乎更适合我
答案 0 :(得分:3)
浏览CCID protocol specification,其中介绍了如何通过USB与智能卡读卡器进行通信,以及Android USB Host documentation,其中介绍了如何在Android中进行USB通信。
基本上,除默认(控制)端点外,每个智能卡读卡器至少支持两个端点:一个批量输出和一个批量输入。
图像显示Omnikey 5427 CK阅读器的终点信息。
答案 1 :(得分:1)
您必须借助界面创建设备连接
由UsbDevice
类提供并通过getInterface()
获取设备的界面,然后使用UsbDeviceConnection
类并调用claimInterface()
来声明界面。
然后,您可以使用OTG电缆将阅读器连接到Android设备。