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