读块经典NFC

时间:2012-10-31 11:51:50

标签: android nfc

如何从扇区1读取数据?authenticate是真的,我在IOException中遇到异常(“收发失败”)。

private String readSector() {   
    byte [] array={(byte)0xD3,(byte)0xF7,(byte)0xD3,(byte)0xF7,(byte)0xD3,(byte)0xF7};
    byte[] data = null;
    final ByteArrayBuffer b = new ByteArrayBuffer(mMaxSize);
    String sb=new String();
    boolean succes = false;
    try {
        mClassic.connect();
        succes = mClassic.authenticateSectorWithKeyA(1, array);
        if (succes) {
            b.append(mClassic.readBlock(3), 1, 16);
            data = b.toByteArray();
        }
        else
             sb+="Authentication failed";
        mClassic.close();
    catch (final TagLostException tag) {
        tag.printStackTrace();
        sb+="Tag Lost";
    }
    catch (final IOException e) {
        e.printStackTrace();
        sb+="IOEception";
    }
}

1 个答案:

答案 0 :(得分:2)

在扇区1块4到6中找到它,并使用该代码读取数据,

private String readMadSector() {
        byte [] array={(byte)0xD3,(byte)0xF7,(byte)0xD3,(byte)0xF7,(byte)0xD3,(byte)0xF7};
        byte[] data = null;
        byte [] b;
        String sb=new String();
    boolean succes = false;
    try {
                  mClassic.connect();
                succes = mClassic.authenticateSectorWithKeyA(1, array);
                                  b=mClassic.readBlock(4);

                  sb+=convertHex(b);


                  b=mClassic.readBlock(5);

                  sb+=convertHex(b);

                  b=mClassic.readBlock(6);

                  sb+=convertHex(b);
        else
              sb+="Authentication failed";

        mClassic.close();

    }

    catch (final TagLostException tag) {
        tag.printStackTrace();
        sb+="Tag Lost";
    }

    catch (final IOException e) {
        e.printStackTrace();
        sb+="IOEception";
    }





    return (sb.toString());
}