首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mifare classic 1k - Android - Tranceive在读取区块时失败

mifare classic 1k - Android - Tranceive在读取区块时失败
EN

Stack Overflow用户
提问于 2013-05-09 20:55:49
回答 2查看 1.4K关注 0票数 1

我正在尝试使用mifare classic卡1k和android nfc (在galaxy nexus上)读取数据块。

代码语言:javascript
复制
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),success具有真实值,但是当应用程序转到readBlock()时,IOException被触发,并且我返回了tranceiver failed。

我做错了什么?

EN

回答 2

Stack Overflow用户

发布于 2013-07-13 21:00:50

在您的代码示例中,您正在对sector 1进行身份验证,但随后尝试从sector 0读取数据块。请记住,扇区和块号是从零开始的。您也可能对blockToSector(int block)感兴趣。

票数 0
EN

Stack Overflow用户

发布于 2018-09-24 20:13:07

你应该

代码语言:javascript
复制
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);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16462327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档