正在使用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(“收发失败”)
答案 0 :(得分:1)
使用readBlock()
后,您将无法writeBlock()
或authenticateSectorWithKeyB()
。
如果它是具有默认访问位的新标记,则将阻止对标记的访问。如果访问条件已更改,则readBlock()
和writeBlock()
将引发异常。您必须使用KeyA身份验证执行标记读取。
答案 1 :(得分:0)
您无法通过使用keyB进行身份验证来阅读mifare卡的阻止。
要阅读Mifare卡块,您必须使用密钥A进行aunthenticae,即使用authenticateSectorWithKeyA()
代替authenticateSectorWithKeyB()
。