Android 安卓NFC:例外;“收发失败”;使用收发器()时
我正在尝试在三星Galaxy S3和支持Android 安卓NFC:例外;“收发失败”;使用收发器()时,android,nfc,smartcard,mifare,contactless-smartcard,Android,Nfc,Smartcard,Mifare,Contactless Smartcard,我正在尝试在三星Galaxy S3和支持NfcA和IsoDep(Mifare DESFire EV1)的智能卡之间进行通信。为此,我启用了forgeground dispatch,并在发现标记时启动了一项任务。任务中的代码如下所示: IsoDep isoDep = IsoDep.get(tag); byte[] selectCommand = { (byte)0x00, // CLA (byte)0xA4, // INS (byte)0x04,
NfcA
和IsoDep
(Mifare DESFire EV1)的智能卡之间进行通信。为此,我启用了forgeground dispatch,并在发现标记时启动了一项任务。任务中的代码如下所示:
IsoDep isoDep = IsoDep.get(tag);
byte[] selectCommand = {
(byte)0x00, // CLA
(byte)0xA4, // INS
(byte)0x04, // P1
(byte)0x00, // P2
(byte)0x0A, // LC
(byte)0x01,(byte)0x02,(byte)0x03,(byte)0x04,(byte)0x05,(byte)0x06,(byte)0x07,(byte)0x08,(byte)0x09,(byte)0xFF, // AID
(byte)0x7F // LE
};
try {
isoDep.connect();
byte[] response = isoDep.transceive(selectCommand);
String result = bytesToString(response);
isoDep.close();
return result;
} catch (Exception e) {
e.printStackTrace();
}
收发器方法引发此异常:
java.io.IOException: Transceive failed
IsoDep
的所有其他方法(如getTimeout()
)都可以无错误地执行。增加超时不会改变行为。在select命令的帮助下,小程序出现在卡上。我还尝试使用NfcA
类。但是我得到了一个异常“tag is lost”
Galaxy S3可能是问题所在吗?我刚刚在另一部手机上试用了相同的应用程序,它运行起来没有任何问题。Galaxy S3确实是问题所在。您是否尝试设置Le=0x00?是否
00A4 04 0007 D2 76 00 00 85 01 01 00
命令APDU工作?您的两个建议都是相同的例外。以及905A0000003000000000
?我在S3上以ISO模式与DESFire EV1一起工作,没有任何问题。你能和我核对一下你的卡吗?