如何使用NFC Android阅读MifareClassic卡?
问题描述:
我正在使用NFC Android编程,我想阅读Mifare Classic卡片。有人知道如何读取这种卡的扇区吗?如何使用NFC Android阅读MifareClassic卡?
我的问题是transceive()
方法。我不知道如何使用它读取扇区 ,例如读取扇区1.
认证方法返回true,表示认证已完成。认证后,扇区应该为任何IO操作做好准备,但是每当我使用readBlock()方法或者收发()方法时,我都会遇到IOException异常(“收发失败”)。 我找不到任何使用Mifare Classic的例子,所以我想知道是否可以使用此API读取Mifare Classic。
亲切的问候。
答
这个API肯定可以阅读Mifare Classic - 我们有这样做的应用程序。
如果您只想读取卡片,则不需要直接使用transceive()
- 只需使用readBlock()
便利方法。
一个常见的错误是认证是在扇区级别完成的,而读取是在块级别完成的。在Mifare Classic上,一个部门由几个街区组成。不幸的是,即使在相同的卡上,每个扇区的块数也可能不同。
使用MifareClassic.sectorToBlock(sector)
检索您认证的扇区的第一个起始块。然后,您可以读取该扇区的所有块。扇区中的块数可以用MifareClassic.getBlockCountInSector(sector)
来检索。
如果它仍然无法正常工作,您可以发布一些代码吗?
两个建议:添加android作为标记,并可能构建一个更多的读者友好的问题。 – anselm 2011-04-08 10:29:57
看看 http://mifareclassicdetectiononandroid.blogspot.com/2011/04/reading-mifare-classic-1k-from-android.html – benya 2011-04-27 19:11:23