[英]How can I read MifareClassic card with NFC Android?
我正在使用NFC Android编程,并且想阅读Mifare Classic卡。 有人知道如何从这种卡上读取扇区吗?
我的问题是transceive()
方法。 我不知道如何使用它来读取扇区,例如读取扇区1。
身份验证方法返回true,表示身份验证已完成。 进行身份验证之后,扇区应该为任何IO操作做好准备,但是每当我使用readBlock()方法或transceive()方法时,都会收到IOException(“ transceive failed”)异常。 我找不到使用Mifare Classic的任何示例,因此我想知道是否可以使用此API读取Mifare Classic。
亲切的问候。
肯定可以使用此API阅读Mifare Classic-我们有执行此操作的应用程序。
如果您只想读取卡,则不需要直接使用transceive()
-只需使用readBlock()
便捷方法。
一个常见的陷阱是,验证是在扇区级别完成的,而读取是在块级别完成的。 在Mifare Classic上,一个扇区由几个块组成。 不幸的是,即使在同一张卡上,每个扇区的块数也可能不同。
使用MifareClassic.sectorToBlock(sector)
检索您为其验证的扇区的第一个起始块。 然后,您可以读取该扇区的所有块。 可以使用MifareClassic.getBlockCountInSector(sector)
检索扇区中的块数。
如果仍然无法使用,您可以发布一些代码吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.