私は奇妙な問題があります。プログラムをデバッグし、 "writeBlock"コマンドの前にブレークポイントを設定してMifareClassicカードを書き込むと、すべてうまくいっています。カードが書かれ、私のプログラムは続行されます。
ブレークポイントを削除すると、「IO例外:送受信に失敗しました」というメッセージが表示されます。私は自分のコードを変更せずにブレークポイントを戻しました、それは再び動作します!Nexus S:デバッグモードでないときMifareClassic NFCタグの書き込みが失敗する
私は紛失しています...問題はプログラムの実行速度に起因する可能性がありますか?ブレークポイントを持つことは、実行遅く...
はここ(認証は、この関数の前に行われている)私のコードです行います
private static boolean WriteMfcBlock(MifareClassic mfc, int blockNumber, byte[] value) {
try {
byte[] toWrite = new byte[MifareClassic.BLOCK_SIZE];
//if the value is less than 16 bytes, fill it with '0'
for (int i=0; i<MifareClassic.BLOCK_SIZE; i++) {
if (i < value.length) toWrite[i] = value[i];
else toWrite[i] = 0;
}
if (!mfc.isConnected()) mfc.connect();
mfc.writeBlock(blockNumber, toWrite);
//Check if the writing is well done
byte[] read = mfc.readBlock(blockNumber);
for (int i = 0; i < MifareClassic.BLOCK_SIZE; i++) {
if (toWrite[i] != read[i]) return false;
}
return true;
}
catch (IOException e) {
textViewInfo.setText("IO EXCEPTION");
return false;
}
}
ご協力いただきありがとうござい
シルヴァン