我刚刚读过this https://stackoverflow.com/a/23197444/1852589回答有关如何将我的 ACR122U 置于卡模拟模式的问题。我确实明白其目的,但您需要如何将命令发送到 ACR122u。
据我所知 FF000000 的意思是:
- FF [类别]
- 00 [INS]
- 00 [P1]
- 00 [P2]
我只是不知道如何发送实际的 PN532 命令,例如:
- FF00000008 D406 6305 630D 6338
- FF00000011 D408 6302 80 6303 80 6305 xx 630D yy 6338 zz
我已经走到这一步了:
TerminalFactory factory = TerminalFactory.getDefault();
List<CardTerminal> terminals;
try {
terminals = factory.terminals().list();
CardTerminal terminal = terminals.get(0);
Card card = terminal.connect("*");
CardChannel channel = card.getBasicChannel();
byte[] command = {???};
CommandAPDU command1 = new CommandAPDU(0xFF,0x00,0x00,0x00, command);
ResponseAPDU response1 = channel.transmit(command1);
System.out.println(bytesToHex(response1.getBytes()));
} catch (CardException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
我感谢您的帮助!
提前谢谢了!!
假设08 D406 6305 630D 6338 means
- 08 [Lc]
- D406 6305 630D 6338 [数据]
它看起来像这样:
byte[] command = new byte[8] { (byte) 0xD4, 0x06, 0x63, 0x05, 0x63, 0x0D, 0x63, 0x38 };
您可以省略8
因为 javac 会为你计算字节数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)