ACR122u卡仿真模式发送PN532命令

时间:2014-07-13 19:34:42

标签: java nfc smartcard-reader hce acr122

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

据我所知,FF000000表示:

  • FF [Class]
  • 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();
    }

感谢您的帮助!

非常感谢提前!!

1 个答案:

答案 0 :(得分: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 };

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