我如何阅读Nexus的mifare经典1k卡

时间:2011-04-14 05:52:16

标签: android nfc nexus-s

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

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

我的代码如boolean success = m1tag.authenticateSectorWithKeyB(0,MifareClassic。KEY_DEFAULT) int index = m1tag.sectorToBlock(0) byte[] content = m1tag.readBlock(index)

成功是真的,但是当我从卡片中读取内容时,抛出IOException(“收发失败”)

2 个答案:

答案 0 :(得分:1)

使用readBlock()后,您将无法writeBlock()authenticateSectorWithKeyB()。 如果它是具有默认访问位的新标记,则将阻止对标记的访问。如果访问条件已更改,则readBlock()writeBlock()将引发异常。您必须使用KeyA身份验证执行标记读取。

答案 1 :(得分:0)

您无法通过使用keyB进行身份验证来阅读mifare卡的阻止。 要阅读Mifare卡块,您必须使用密钥A进行aunthenticae,即使用authenticateSectorWithKeyA()代替authenticateSectorWithKeyB()