如何使用NFC Android阅读MifareClassic卡?

问题描述:

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

我的问题是transceive()方法。我不知道如何使用它读取扇区 ,例如读取扇区1.

认证方法返回true,表示认证已完成。认证后,扇区应该为任何IO操作做好准备,但是每当我使用readBlock()方法或者收发()方法时,我都会遇到IOException异常(“收发失败”)。 我找不到任何使用Mifare Classic的例子,所以我想知道是否可以使用此API读取Mifare Classic。

亲切的问候。

+0

两个建议:添加android作为标记,并可能构建一个更多的读者友好的问题。 – anselm 2011-04-08 10:29:57

+0

看看 http://mifareclassicdetectiononandroid.blogspot.com/2011/04/reading-mifare-classic-1k-from-android.html – benya 2011-04-27 19:11:23

这个API肯定可以阅读Mifare Classic - 我们有这样做的应用程序。

如果您只想读取卡片,则不需要直接使用transceive() - 只需使用readBlock()便利方法。

一个常见的错误是认证是在扇区级别完成的,而读取是在级别完成的。在Mifare Classic上,一个部门由几个街区组成。不幸的是,即使在相同的卡上,每个扇区的块数也可能不同。

使用MifareClassic.sectorToBlock(sector)检索您认证的扇区的第一个起始块。然后,您可以读取该扇区的所有块。扇区中的块数可以用MifareClassic.getBlockCountInSector(sector)来检索。

如果它仍然无法正常工作,您可以发布一些代码吗?

+0

是的非常感谢你的工作 – sepideh 2011-04-12 06:34:21

+1

写什么?你的应用程序是否也写入?每当我使用authenticateSectorWithKeyB()对我的扇区38进行身份验证时,我变为true,但是当我调用writeBlock()时,我得到异常。 – sepideh 2011-04-15 13:08:46