[英]How Can I Read NFC Card with IsoDep?
我想通过NFC读取RFID卡,该卡来自哥伦比亚波哥大的当地交通系统。 我知道这是可能的,因为我已经下载了执行此操作的android应用!
到目前为止的进度...当我将手机放在卡片上时,我的应用程序以ACTION_TECH_DISCOVERED的意图启动,并且我可以读取卡片UID之类的信息,但是我不知道如何读取所需的信息,特别是卡上的钱。
我在stackoverflow上阅读过,我需要做的是找到我想要访问的应用程序并发送ADPU命令,但是看来我的卡没有任何应用程序,因为使用任何android应用程序浏览该卡,它总是说找到0个应用程序。 因此,我不知道该从哪里获得此信息。
我的卡的技术信息为:
谢谢!
我在stackoverflow中[阅读]这里,我需要做的是找到我要访问的应用程序并发送ADPU命令。
正确,这正是您需要做的。 获得此信息(即卡的通信协议规范)后,您将执行以下操作:
Tag tag = ... // TODO: get tag handle from intent
IsoDep isoDep = IsoDep.get(tag);
if (isoDep != null) {
isoDep.connect();
byte[] response = isoDep.transceive(SELECT_APDU); // SELECT_APDU = 00 A4 0400 <Lc> <APPLICATION ID>
// TODO: send further APDU commands according to the protocol specification
//response = isoDep.transceive(APDU);
isoDep.close();
}
[...]但看来我的卡没有任何应用程序,因为使用任何android应用程序浏览该卡时,它始终显示Found 0 Applications。
这通常仅意味着卡上没有扫描器应用程序*知道的应用程序*。 许多ISO-DEP卡没有卡上可用的应用程序的公共可读目录。 (尽管某些卡可能具有EF.DIR或类似的东西。)
因此,我不知道该从哪里获得此信息。
是的,这通常是棘手的部分。 有几种解决方法:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.