我想通过NFC阅读一张RFID卡,这张卡来自哥伦比亚波哥大当地的交通系统。我知道这是可能的,因为我下载了一个android应用程序,它就是这样做的!
到目前为止我的进步..。当我把手机放在卡上时,我的应用程序就会启动,带有ACTION_TECH_DISCOVERED的意图,我可以读取类似卡UID之类的东西,但我不知道如何读取我想要的信息,尤其是卡上的钱。
我在这里读到了堆栈溢出,我需要做的是找到我想要访问的应用程序并发送ADPU命令,但是看起来我的卡没有任何应用程序,因为使用任何android应用程序来探索这个卡,它总是说找到了0个应用程序。所以,我不知道我该从哪里得到这些信息。
我的卡的技术信息是:
谢谢!
发布于 2014-04-15 15:32:55
在这里,我在堆栈溢出中读到,我需要做的是找到我想要访问的应用程序并发送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应用程序中都会发现这张卡,它总是说找到了0个应用程序。
这通常只意味着扫描程序**上没有已知的应用程序。许多ISO-DEP卡没有公开可读的应用程序目录,在卡上可用。(虽然有些卡片可能有EF.DIR或类似的东西。)
所以,我不知道我该从哪里得到这些信息。
对,这通常是棘手的部分。要做到这一点,有几种方法:
https://stackoverflow.com/questions/23086282
复制相似问题