【问题标题】:Reading Smart Card from Omnikey 5427 CK in Android在 Android 中从 Omnikey 5427 CK 读取智能卡
【发布时间】:2015-09-08 16:41:55
【问题描述】:

场景: 需要使用 Android 读取 SmartCard。

我正在尝试在 Android 中制作一个应用程序来使用 5427 SmartCard reader 读取智能卡。我已经使用 OTG/USB 连接了那个阅读器。我从 Play 商店下载了这个应用程序 ATR Analyzer,它成功读取了卡。我想做类似的应用程序,但找不到任何线索因为下面的应用程序正在使用的库不可用 https://play.google.com/store/apps/details?id=com.scdroid.atranalyzer&hl=en

在 Windows 上,我可以使用 java javax-smartcardio 创建一个应用程序,它运行良好。我也可以在基于 C# .net 控制台的应用程序中读取卡片。

我已经搜索了 javax-smartcardio 无法在 android 中使用的所有地方。

还有另一种选择,可以将 java 与树莓派一起使用来达到相同的结果,以及根据我的要求,android 似乎更适合我

【问题讨论】:

  • 对于 SO 中的任何人来说,在 Android 中使用读卡器的整个过程都很难解释。如果您可以讨论您在读卡器方面面临的特定问题,那就更好了!
  • 我想通过 otg 与我的读者建立联系,这就是我想做的事情
  • @AbdulBasit 你有没有找到适用于 Android 的有效解决方案?
  • @AbdulBasit 你找到解决问题的方法了吗?

标签: android smartcard


【解决方案1】:

查看描述如何通过 USB 与智能卡读卡器通信的 CCID protocol specification 和描述如何在 Android 中进行 USB 通信的 Android USB Host documentation

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

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

【讨论】:

  • 我需要指南或示例代码来连接我的 USB 读卡器吗?你能帮忙吗
  • 首先,您应该阅读文档并尝试理解基本概念。在此处粘贴代码不是一个好主意..对其进行一些研究并努力编辑您的问题。
【解决方案2】:

您必须在界面的帮助下创建设备连接 由UsbDevice类提供,通过getInterface()获取设备接口,然后使用UsbDeviceConnection类调用claimInterface()获取接口。

然后您可以使用 OTG 数据线将您的阅读器连接到安卓设备。

【讨论】:

  • 你说的是哪个库?
  • 好的,我可以通过谢谢阅读我的设备信息。但是现在我如何与它通信以读取卡片?
  • 您必须通过 ccid rev 1.0 文档并通过 bulkTransfer() 传输数据。这是一个漫长的过程,我无法在那里告诉你。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-16
相关资源
最近更新 更多