【发布时间】:2015-12-20 15:06:44
【问题描述】:
我正在使用 Galaxy A5、Android 5.0.2、SDK 21 和 Android Studio 1.1.0
Android 作为 PCD,Mifare DESFire 作为 PICC。原生 DESFire APDU 框架不起作用,但 ISO 7816-4 起作用。
例子:
AID 等于 000000h(PICC 级别)的 MIFARE DESFire SelectApplication
命令: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();
}
TagInfo 扫描(版本 4.11.59 [β4011059])
信息
- IC 制造商:恩智浦半导体
- IC 类型:未知 IC
NDEF
- 无 NFC 数据集存储:
额外
技术
- 支持的技术:
- 兼容 ISO/IEC 14443-4(A 型)
- 兼容 ISO/IEC 14443-3(A 型)
兼容 ISO/IEC 14443-2(A 型)
Android 技术资料: 标签说明:
- 标签:技术 [android.nfc.tech.IsoDep, android.nfc.tech.NfcA]
- android.nfc.tech.IsoDep
- 最大收发长度:261 字节
- 默认最大收发超时:309 毫秒
- 不支持扩展长度的 APDU
- android.nfc.tech.NfcA
- 最大收发长度:253 字节
- 默认最大收发超时:618 毫秒
Android 中不支持 MIFARE Classic
详细协议信息:
- ID:04:62:26:82:8A:29:80
- ATQA: 0x4403
- SAK:0x20
- ATS: 0x1078B3C402654B5450304432654B545000
- 最大。接受的帧大小:256 字节(FSCI:8)
- 支持的接收速率:106、212、424 kbit/s(DR:1、2、4)
- 支持的发送速率:106、212、424 kbit/s(DS:1、2、4)
- 不支持不同的发送和接收速率
- SFGT:4.833 毫秒(SFGI:4)
- FWT:1.237 秒(FWI:12)
- 不支持 NAD
- 支持 CID
- 历史字节:0x654B5450304432654B5450 |eKTP0D2eKTP|
【问题讨论】:
-
您确定这是 DESFire 卡吗?您是否使用其他一些标签阅读器应用程序验证了这一点?
-
恩智浦 TagInfo 告诉您该卡不是 DESFire 卡,对吗?那么,您为什么希望该卡可以作为 DESFire 访问?
-
使用 TagInfo(NXP) 的附加读数,如上所示。我尝试使用另一个程序 NFCTagInfo(NFC 研究实验室 Hagenberg-Michael Roland),我得到卡是 DESFire 的信息。
-
如果我的 android 不支持原生协议可以吗?
标签: android nfc mifare apdu contactless-smartcard