title: Android NFC java.io.IOException: Transceive failed
body: <p>I am working on an android application which can read and write on an NFC tag.
  I have no problem reading a tag which I already wrote something on, but when I use a blank tag I have difficulties reading the UID of the tag in the HEX code.</p>
  
  <p>I am using mifare classic tags and I read the UID directly in the hex with the readblock method. The strange thing is, it works perfectly on debugger mode where I get the UID. But when I am trying without debbuger I get the following exception:</p>
  
  <pre><code>   java.io.IOException: Transceive failed
  </code></pre>
  
  <p>Here's my method to read into the tag :</p>
  
  <pre><code>    static String getUID(Intent intent) {
  
      Tag tagFromIntent = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
      MifareClassic mc = MifareClassic.get(tagFromIntent);
  
      try {
          mc.connect();
          Log.i("connect", "ok");
      } catch (IOException e) {
          // TODO Auto-generated catch block
          Log.i("connect", "nok");
          e.printStackTrace();
      }
      try {
          boolean secA = mc.authenticateSectorWithKeyA(0, mc.KEY_DEFAULT);
          Log.i("secA", "ok");
      } catch (IOException e) {
          Log.i("secA", "nok");
          // TODO Auto-generated catch block
          e.printStackTrace();
      }
      try {
          boolean secB = mc.authenticateSectorWithKeyB(0, mc.KEY_DEFAULT);
          Log.i("secB", "ok");
      } catch (IOException e) {
          Log.i("secB", "nok");
          // TODO Auto-generated catch block
          e.printStackTrace();
      }
  
      byte[] uidBytes = null;
  
      try {
  
          uidBytes = mc.readBlock(0);
          Log.i("bytes", "ok");
  
      } catch (IOException e) {
          Log.i("bytes", "nok");
          // TODO Auto-generated catch block
          e.printStackTrace();
      }
      try {
  
          mc.close();
          Log.i("close", "ok");
      } catch (IOException e) {
          Log.i("close", "nok");
          // TODO Auto-generated catch block
          e.printStackTrace();
      }
  
      if (uidBytes != null) {
      String uid = HexToString(uidBytes);
  
      return uid;
      }
      else { return "Repasser le tag";}
  }
  </code></pre>
  
  <p>I have no idea how to fix this, since it works in debug mode.</p>