从Android中的Omnikey 5427 CK读取智能卡

时间:2015-09-08 16:41:56

标签: android smartcard

场景: 需要使用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似乎更适合我

2 个答案:

答案 0 :(得分:3)

浏览CCID protocol specification,其中介绍了如何通过USB与智能卡读卡器进行通信,以及Android USB Host documentation,其中介绍了如何在Android中进行USB通信。

基本上,除默认(控制)端点外,每个智能卡读卡器至少支持两个端点:一个批量输出和一个批量输入。

enter image description here

图像显示Omnikey 5427 CK阅读器的终点信息。

答案 1 :(得分:1)

您必须借助界面创建设备连接 由UsbDevice类提供并通过getInterface()获取设备的界面,然后使用UsbDeviceConnection类并调用claimInterface()来声明界面。

然后,您可以使用OTG电缆将阅读器连接到Android设备。