0

我刚刚阅读有关如何将我的 ACR122U 置于卡模拟模式的答案。我确实了解目的,但是您需要如何将命令发送到 ACR122u。

据我所知 FF000000 意味着:

  • FF [类]
  • 00 [INS]
  • 00 [P1]
  • 00 [P2]

我只是不知道如何发送实际的 PN532 命令,例如:

  • FF000000 08 D406 6305 630D 6338
  • FF000000 11 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();
}

我感谢您的帮助!

提前谢谢了!!

4

1 回答 1

1

假设08 D406 6305 630D 6338表示

  • 08 [LC]
  • D406 6305 630D 6338【资料】

它看起来像这样:

byte[] command = new byte[8] { (byte) 0xD4, 0x06, 0x63, 0x05, 0x63, 0x0D, 0x63, 0x38 };

您可以省略 the,8因为 javac 将为您计算字节数。

于 2014-07-13T20:21:28.763 回答