我正在使用 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(索引)
成功是真的,但是当我从卡中读取内容时,抛出 IOException("transceive failed")
最佳答案
在使用authenticateSectorWithKeyB()
后,您将无法readBlock()
或writeBlock()
。
如果它是具有默认访问位的新标签,则将阻止对该标签的访问。如果访问条件已更改,则 readBlock()
和 writeBlock()
将抛出异常。您将必须使用 KeyA 身份验证来读取标签。
关于android - 我如何读取 Nexus s 的 mifare classic 1k 卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5659106/