我目前正在尝试开发一个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);
}
}
答案 0 :(得分:2)
您需要使用
sectorToBlock(int sectorIndex)
确定扇区的第一个块的方法。然后使用
getBlockCountInSector(int sectorIndex)
确定您可以在该扇区中写入的块数(-1)。
对于上面的代码,当您验证扇区1时,您正尝试写入扇区0。