有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java使用我们自己的安卓应用程序在MifareClassic卡上编写

我目前正在尝试开发一个安卓应用程序,它将在Mifare卡上写一个小文本。 我试图编写一个应用程序,但代码不起作用。有人知道我必须在Android清单上写什么? 这是我的代码,如果有人能帮助我,那将是非常好的。多谢各位

公共静态最终标记创建者=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) 个答案

  1. # 1 楼答案

    你需要使用

    sectorToBlock(int sectorIndex)
    

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

    getBlockCountInSector(int sectorIndex)
    

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

    对于上面的代码,在对扇区1进行身份验证后,您正在尝试写入扇区0