1

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

公共静态最终标签创建者=空;

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

1 回答 1

2

您需要使用

sectorToBlock(int sectorIndex)

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

getBlockCountInSector(int sectorIndex)

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

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

于 2013-03-14T21:04:22.847 回答