2

セクター 1 からデータを読み取る方法は?authenticate が true の場合、IOException("transceive failed") で例外が発生します。

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";
    }
}
4

1 に答える 1

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());
}
于 2012-11-04T10:55:12.853 に答える