我正在使用Galaxy A5,Android 5.0.2,带有Android Studio 1.1.0的SDK 21
Android为PCD,Mifare DESFire为PICC。原生DESFire APDU框架不起作用,但ISO 7816-4有效。
示例:
MIFARE DESFire SelectApplication,AID等于000000h
(PICC级别)
命令:90 5a 00 00 03 00 00 00 00
。
预期回复:91 00
。
目前回复是68 00
。
void SelectApp() {
_isoDep.connect();
byte[] reqSelectApp = new byte[]{(byte) 0x90, (byte) 0x5A, (byte) 0x00, (byte) 0x00, (byte) 0x03, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00};
byte[] resSelectApp = _isoDep.transceive(reqSelectApp);
_responseTextView.append(String.format("reqSelectApp: %s length:%d\n", BytesToHexStr(reqSelectApp), reqSelectApp.length));
_responseTextView.append(String.format("resSelectApp: %s length:%d\n", BytesToHexStr(resSelectApp), resSelectApp.length));
}
String BytesToHexStr(byte[] items) {
StringBuilder builder = new StringBuilder();
for (byte item : items) {
builder.append(String.format("%02X", item));
}
return builder.toString();
}
INFO
NDEF
EXTRA
TECH
ISO / IEC 14443-2(A类)兼容
Android技术信息: 标签说明:
Android中没有MIFARE Classic支持
详细协议信息:
答案 0 :(得分:0)
虽然ATQA / SAK看起来好像卡是DESFire(这就是我的NFC TagInfo应用程序检测到它的原因,但是应该给你一个读错误或者指示DESFire主应用程序的可用性),其余参数(特别是历史字节)清楚地表明这不是DESFire卡。
因此,不要期望卡响应DESFire命令(本机或包裹本机)。这也与卡的行为相匹配,因为它以68 00
响应(表示不支持CLA字节的编码(在您的情况下为0x90
)。