我正在MifareDesfire标签上发送AES身份验证命令并获得Tag Lost异常。
因为desfire中的第一个命令代码是:0xAA,卡密钥为num 0x00(主卡密钥)
在本地身份验证(DES)上尝试了这一点,并且对于native来说工作正常,命令是:(0x0A,0x00)
Sample code
:
public void onNewIntent(Intent intent) {
TextView text2 = (TextView) findViewById(R.id.textView2);
TextView text1 = (TextView) findViewById(R.id.textView1);
String action = intent.getAction();
if (NfcAdapter.ACTION_TAG_DISCOVERED.equals(action)
|| NfcAdapter.ACTION_TECH_DISCOVERED.equals(action)
|| NfcAdapter.ACTION_NDEF_DISCOVERED.equals(action)) {
Toast.makeText(this, "discovered", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "Falied", Toast.LENGTH_SHORT).show();
}
byte[] tagResponse = null;
desfire = (Tag) intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
isodep = IsoDep.get(desfire);
try {
isodep.connect();
} catch (IOException e) {
e.printStackTrace();
}
byte[] test = new byte[] { (byte) 0xAA, (byte) 0x00 };
try {
tagResponse = isodep.transceive(test);
} catch (IOException e) {
e.printStackTrace();
}
try {
isodep.close();
} catch (IOException e) {
e.printStackTrace();
}
}
答案 0 :(得分:0)
已解决:RF antina问题,我在附近保持强烈标记 AES认证需要更多的电力来在PCD和PICC之间交换数据。