使用我们自己的Android应用程序在MifareClassic卡上书写

时间:2013-03-14 17:02:47

标签: java android nfc rfid mifare

我目前正在尝试开发一个Android应用程序,它将在Mifare卡上写一个小文本。 我试图编写一个应用程序,但代码不起作用。有人知道我在Android Manifest上写了什么? 这是我的代码,如果有人可以帮助我,那将是非常友好的。非常感谢你

public static final Tag CREATOR = null;

public void ecrirenfc(Tag tag) {

    MifareClassic mfc = MifareClassic.get(tag);

    try {
        mfc.connect();
        boolean auth = false;

        auth = mfc.authenticateSectorWithKeyA(1, MifareClassic.KEY_DEFAULT);

        if (auth) {
            String text = "Hello, World!";
            byte[] value = text.getBytes();
            byte[] toWrite = new byte[MifareClassic.BLOCK_SIZE];

            for (int i = 0; i < MifareClassic.BLOCK_SIZE; i++) {
                if (i < value.length)
                    toWrite[i] = value[i];
                else
                    toWrite[i] = 0;
            }

            mfc.writeBlock(1, toWrite);
        }

    } catch (IOException e) {
    }
}

public void onClick(View view) {
    if (view.getId() == R.id.button1) {
        ecrirenfc(CREATOR);
    }
}

1 个答案:

答案 0 :(得分:2)

您需要使用

sectorToBlock(int sectorIndex)

确定扇区的第一个块的方法。然后使用

getBlockCountInSector(int sectorIndex)

确定您可以在该扇区中写入的块数(-1)。

对于上面的代码,当您验证扇区1时,您正尝试写入扇区0。