问题描述
||
正在使用NFC Android编程,我想阅读mifare Classic卡。有人知道如何从这种卡上读取扇区吗?
身份验证方法返回true,表示身份验证已完成。进行身份验证之后,扇区应该准备好执行任何IO操作,但是每当我使用readBlock()方法或transceive()方法时,都会收到IOException(\“ transceive Failed \”)异常。我找不到使用mifare Classic的任何示例,因此我想知道是否可以使用此API读取mifare Classic。
我的代码是这样的
boolean success = m1tag.authenticateSectorWithKeyB(0,mifareClassic。KEY_DEFAULT)
int index = m1tag.sectorToBlock(0)
byte[] content = m1tag.readBlock(index)
成功是正确的,但是当我从卡中读取内容时,抛出IOException(\“ transceive Failed \”)
解决方法
使用
authenticateSectorWithKeyB()
后,您将无法再readBlock()
或writeBlock()
。
如果它是具有默认访问位的新标签,则将阻止对该标签的访问。如果访问条件已更改,则readBlock()
和writeBlock()
将引发异常。您将必须使用KeyA身份验证执行标签的读取。
,您无法通过keyB进行身份验证来读取mifare卡的冻结。
要读取Mifare卡块,您必须使用钥匙A来进行点刺,即使用authenticateSectorWithKeyA()
而不是authenticateSectorWithKeyB()
。