Android NFC:使用 transceive() 时出现异常 "transceive failed"

Android NFC: Exception "transceive failed" when using transceive()

我正在尝试在 Samsung Galaxy S3 和支持 NfcAIsoDep (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 命令中带有 AID 的小程序存在于卡上。我也试过用NfcAclass。但后来我得到了例外 "tag is lost".

问题可能出在 Galaxy S3 上吗?

我刚刚在另一个 phone 上尝试了相同的应用程序,它没有任何问题。 Galaxy S3 确实是个问题。