我目前正在尝试开发一个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);
    }
}

最佳答案

您需要使用

sectorToBlock(int sectorIndex)


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

getBlockCountInSector(int sectorIndex)


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

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

10-07 23:36