如何使用NFC Android阅读MifareClassic卡?

时间:2011-04-08 10:03:25

标签: android rfid nfc mifare

我正在使用NFC Android编程,我想阅读Mifare Classic卡。有人知道如何读取这种卡片上的扇区吗?

我的问题是transceive()方法。我不知道如何用它来阅读一个扇区 例如,阅读第1部分。

身份验证方法返回true,表示身份验证已完成。在身份验证之后,扇区应该为任何IO操作做好准备,但每当我使用readBlock()方法或者transmitive()方法时,我都会遇到IOException异常(“收发失败”)。 我找不到任何使用Mifare Classic的例子,所以我想知道是否可以用这个API阅读Mifare Classic。

亲切的问候。

1 个答案:

答案 0 :(得分:8)

肯定可以使用此API阅读Mifare Classic - 我们有应用程序可以执行此操作。

如果您只是想读取卡片,则不需要直接使用transceive() - 只需使用readBlock()便捷方法即可。

常见的缺陷是认证是在扇区级别完成的,而读取是在级别完成的。在Mifare Classic上,一个部门由几个街区组成。不幸的是,每个扇区的块数可能会有所不同,即使在同一张卡上也是如此。

使用MifareClassic.sectorToBlock(sector)检索您进行身份验证的扇区的第一个起始块。然后,您可以阅读该扇区的所有块。可以使用MifareClassic.getBlockCountInSector(sector)检索扇区中的块数。

如果它仍然不起作用,你可以发布一些代码吗?