2011-04-08 175 views
0

我正在使用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

回答

8

這個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