3

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

Authentication 方法返回 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")

4

2 回答 2

1

您将无法readBlock()使用. 如果它是具有默认访问位的新标签,则对标签的访问将被阻止。如果访问条件发生了变化,那么会抛出异常。您必须使用 KeyA 身份验证来读取标签。writeBlock()authenticateSectorWithKeyB()readBlock()writeBlock()

于 2012-02-17T15:06:47.563 回答
0

您无法通过 keyB 进行身份验证来读取 mifare 卡的 Block。要读取 Mifare 卡块,您必须使用密钥 A 进行验证,即使用authenticateSectorWithKeyA()而不是authenticateSectorWithKeyB()

于 2012-08-30T08:40:03.397 回答