mifareClassic.authenticateSectorWithKeyA() - android.nfc.TagLostException:标记丢失

时间:2017-11-17 21:31:14

标签: android nfc mifare

我得到了这个例外:

  

android.nfc.TagLostException:标签丢失了。

     

在android.nfc.TransceiveResult.getResponseOrThrow(TransceiveResult.java:48)

     

在android.nfc.tech.BasicTagTechnology.transceive(BasicTagTechnology.java:151)

     

在android.nfc.tech.MifareClassic.authenticate(MifareClassic.java:395)

     

在android.nfc.tech.MifareClassic.authenticateSectorWithKeyA(MifareClassic.java:339)

     

在com.example.MyTag.a(MyTag.java:870)

     

在com.example.MyTag.fastRead(MyTag.java:368)

这是我的代码:

Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
MifareClassic mifareClassic = MifareClassic.get(tag);
if (MY_TAG_TIMEOUT_MILLIS != -1) mifareClassic.setTimeout(MY_TAG_TIMEOUT_MILLIS); // have tried -1, 200, 500, 1000, 2000, 3000, 4000 and 5000
if (!mifareClassic.isConnected()) mifareClassic.connect();
mifareClassic.authenticateSectorWithKeyA(15, MifareClassic.KEY_DEFAULT); // This line is causing the exception

我们遇到的标签问题我认为可能不是真正的恩智浦。

尝试了this answer的建议,但没有帮助。

看了MifareClassic.java source code,但没有给我任何线索。

知道底层问题是什么以及如何解决?

1 个答案:

答案 0 :(得分:0)

在我的情况下,出现此问题是因为您需要使卡在范围内停留几秒钟。如果您只是在读完卡后将其取走,则会出现此异常。