我正在尝试将APDU发送到EMV卡以通过Android nfc检索信息。我能够通过选择applet AID,获取PDOL和发送旧卡的读取命令来检索信息。
用于选择小程序的APDU:
00 A4 04 00 07 AID 00
获取处理选项:
80 A8 00 00 12 83 10 B6 20 C0 00 00 00 00 00 10 00 82 3D DE 7A 01 24 00
然而,对于更新的卡,我仍然可以检索卡的PSE,但是当选择applet AID并发送GPO时,我收到标签丢失或收发失败。我也试过增加超时时间。如果有人能帮助我提供一些非常感激的见解。
选择小程序的代码:
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
IsoDep isoDep = IsoDep.get(tag);
final byte[] TEST = {
(byte) 0x00,
(byte) 0xA4,
(byte) 0x04,
(byte) 0x00,
(byte) 0x07,
(byte) 0xA0, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x03,
(byte) 0x10,(byte) 0x10,
(byte) 0x00,
};
try {
isoDep.connect();
isoDep.setTimeout(10000);
byte[] result = isoDep.transceive(TEST);
Log.i("test", "TEST: " + "transceived");
String str = bytesToHex(result);
Log.i("test", "TEST: " + str);
Log.i("test", "TEST: " + "close");
isoDep.close();
} catch (Exception e) {
String error = e.getMessage();
Log.i("test", "TEST: " + e);
Toast.makeText(this.getBaseContext(), error, Toast.LENGTH_LONG).show();
}
}
感谢。