[英]android nfc - mifare classic 1k Increment operation tranceive failed
[英]mifare classic 1k - Android - Tranceive failed on reading block
我正在尝试使用mifare经典卡1k和android nfc(在银河系上)读取块。
private final int mMaxSize = 64;
mClassic.connect();
boolean success = mClassic.authenticateSectorWithKeyA(1, MifareClassic.KEY_DEFAULT );
final ByteArrayBuffer b = new ByteArrayBuffer(mMaxSize);
if (success)
{
b.append(mClassic.readBlock(0), 0, 16);
b.append(mClassic.readBlock(1), 0, 16);
b.append(mClassic.readBlock(2), 0, 16);
b.append(mClassic.readBlock(3), 0, 16);
}
如果我想读取扇区0,那没关系。 但是,如果我想读取其他扇区(例如扇区1),则成功具有真正的价值,但是当应用程序进入readBlock()
,将触发IOException
,并且我返回的收发器失败。
我做错了什么?
在您的代码示例中,您正在对扇区1进行身份验证,然后尝试从扇区0中读取块。 请记住,扇区号和块号是从零开始的。 您可能也对blockToSector(int block)感兴趣。
你应该
b.append(mClassic.readBlock(4), 0, 16);
b.append(mClassic.readBlock(5), 0, 16);
b.append(mClassic.readBlock(6), 0, 16);
b.append(mClassic.readBlock(7), 0, 16);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.