Android 上带有 JMRTD 的外部 RFID reader

External RFID reader on Android with JMRTD

上下文

我有一台 Minix x88i Android 计算机(不相关,但它 没有 内部 NFC 技术),连接到外部 RFID reader( ACR1252u from ACS). ACS provides an API for Android 这样我就可以通过我的应用程序与我的 reader 通信。这很有效。

目标

我的目标是能够读取 ISO 14443 A 类 卡((荷兰语)身份证和护照(又名 ePassports )), 并在我的应用程序中得到结果。访问这些标签的关键是 ePassports 上可见的 MRZ(机器可读区),目前可以对其进行硬编码。

问题

我对下一步应该做什么有点犹豫。我找到 JMRTD API 来帮助我访问 ePassports,但我不知道如何在我的应用程序中导入它后使用它(主要是因为我没有 'Tag' 或 'Card' 对象之类的)。我发现使用此功能的应用程序要么使用导入 javax.smartcardio.* 要么使用 android.nfc.*,对于没有内部 NFC 的设备,这两者在我的 Android 应用程序中都不起作用。

需要使用 JMRTD 吗?不,如果还有我不知道的其他图书馆做同样的事情,请告诉我!

你可以指导我正确地指导我如何在没有内部 NFC 的设备上将 JMRTD(或其他东西)用于 Android 应用程序,并结合 ACR reader.他们的热门 reader 是 ACR122,如果您有这方面的经验,很有可能它也适用于我的 reader!或者,也许您知道一个执行相同操作的项目,所以我可以将其用作代码示例。

如果我需要提供更多信息,请告诉我。提前致谢!

通过在我自己的 class 中扩展来自 SCUBA 的 CardService class 解决(来自 JMRTD 的依赖)。接下来我可以从 JMRTD 创建一个 PassportService,打开它,select 应用程序,执行身份验证并读取数据。