Android NFC: Exception “transceive failed” when using transceive() Code Answer

Hello Developer, Hope you guys are doing great. Today at Tutorial Guruji Official website, we are sharing the answer of Android NFC: Exception “transceive failed” when using transceive() without wasting too much if your time.

The question is published on by Tutorial Guruji team.

I’m trying to communicate between a Samsung Galaxy S3 and a smartcard that supports NfcA and IsoDep (Mifare DESFire EV1). To do this, I enabled forgeground dispatch and started a task when a tag is discovered. The code in the task looks like this:

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();
}

The transceive method throws this exception:

java.io.IOException: Transceive failed

All other methods of IsoDep (like getTimeout()) can be executed without error. Increasing the timeout doesn’t change the behaviour. The applet with the AID in the select command is present on the card. I also tried to use the NfcA class. But then I get the exception “tag is lost”.

Could the Galaxy S3 be the problem?

Answer

I just tried the same app on another phone and it worked without any problems. The Galaxy S3 is indeed the problem.

We are here to answer your question about Android NFC: Exception “transceive failed” when using transceive() - If you find the proper solution, please don't forgot to share this with your team members.

Related Posts

Tutorial Guruji