成功验证后,Transceive在读取Ultralight C时失败

时间:2018-02-13 16:50:04

标签: android nfc mifare

我写&阅读Android 4.4.4下的Ultralight C NFC芯片。

什么有效

  • 阅读解锁芯片
  • 在解锁芯片上写

什么不起作用

    锁定芯片上的
  • 身份验证
  • 在锁定的芯片上读取(收发0x30)

代码

    MifareUltralight mifare = MifareUltralight.get(tag);
    JSONObject result = new JSONObject();
    try {
        mifare.connect();

        authenticate(tag, mifare);
        Log.d(TAG, "authenticate successful");

        int flag = 0;
        String message = "";
        int nbByte = 0;
        for(int page = 4; page < 39; page++) {
            byte[] cmd = {0x30, (byte) page};
            byte[] msg = mifare.transceive(cmd);

            // Misc...
        }


    } catch (IOException e) {
        Log.e(TAG, "IOException while reading MifareUltralight message...", e);
        return null;
    } catch (JSONException e) {
        e.printStackTrace();
        return null;
    } finally {
        if (mifare != null) {
            try {
                mifare.close();
            }
            catch (IOException e) {
                Log.e(TAG, "Error closing tag...", e);
            }
        }
    }

问题:如果代码被锁定,身份验证就会很好然后此脚本会从

中引发java.io.IOException: transceive failed异常
  • android.nfc.TransceiveResult.getResponsesOrThrow(TransceiveResult.java:52)
  • android.nfc.tech.BasicTagTechnology.transceive(BasicTagTechnology.java:151)
  • abdriud.nfc.tech.MifareUltralight.transceive(MaifareUltralight.java:215)

记录验证成功

0 个答案:

没有答案