将Nfc技术映射到标签类型

时间:2014-02-25 19:19:22

标签: android nfc rfid

我正在编写一个应该能够读取和写入类型1,2,3和4的nfc标签的应用程序。我有tag1,tag2和tag4标签都支持NfcA技术,我想使用NfcA class(http://developer.android.com/reference/android/nfc/tech/NfcA.html)与trancieve(byte [])函数一起向标记发送命令。我如何以编程方式区分标签,以便我知道要使用的通信协议(命令对所有标签类型都不同)。

例如,以下分别对Tag1和Tag2执行读命令:

// Note: nfcATag is an instance of android.nfc.tech.NfcA
byte[] readTag1Bytes = nfcATag.transcieve(new byte[] {0x01, 0x00, 0x00, id[0], id[1], id[2], id[3]}); // Id[] is a byte array that contains tag id
byte[] readTag2Bytes = nfcATag.transcieve(new byte[] {0x30, 0x00})

感谢任何帮助..

1 个答案:

答案 0 :(得分:1)

NfcA等同于ISO 14443 A型,因此您可以通过评估发送应答器的ATQA / SENS_RES(2字节)响应来区分标签。
有关可区分标记类型的列表,请参阅here

您可以使用以下命令:

byte[]  getAtqa()    //Return the ATQA/SENS_RES bytes from tag discovery.
Tag     getTag()     //Get the Tag object backing this TagTechnology object.