我知道如何从 Mifare DESFire 标签读取和写入 ndef 消息,但在与 Android 通信时,我很难理解如何使用 DESFire 支持的命令集。
我知道这与
transceive(byte[])
有助于通过原始字节进行通信的功能有关。我如何使用它?如何使用自定义密钥锁定消息?
IsoDep.transceive()
确实是正确的方法。您可以将 ISO7816-4 APDU(如来自NFC 论坛 Type 4 标签规范的那些)发送到标签或使用特定于 DESfire 的命令集与标签进行通信(请参阅http://www.nxp.com/documents/ short_data_sheet/MF3ICDX21_41_81_SDS.pdf以获得高级概述)。
使用自定义密钥锁定消息需要使用 DESFire 特定的命令。数据表中描述了详细信息,可应 NXP 要求提供;见http://www.nxp.com/products/identification_and_security/smart_card_ics/mifare_smart_card_ics/mifare_desfire/MF3ICD2101DUD.html