私は私がステータス要求コマンドを送信することができ、ここでデバイスを持って、その後、私はそれがAndroidの読み込みがstatusBuffer((データが、何のクラッシュを読まない)
バイト= mmInStream.readを使用して読んで解決されることはありません);
ステータスが変わったときに問題が発生しました。時々私は現在の状態を取り戻すでしょう、プログラムがその行にぶら下がり、何もしません。クラッシュしたり、次の行に移動したりすることはありません。私は、デバイスの電源を切って接続を切断することによってのみ進めることができます。
ここには私のコードでなければならないこのエラーが全くないブラックベリートーチがあります。
トラブルシューティングのヒントを教えていただけますか?以下は、デバイスの現在のステータスを読み取るwhileループです。
while (true) {
getStatus();
try {
bytes = 0;
while(bytes < 1){
bytes = mmInStream.read(statusBuffer);
if (bytes != 0){
response = new String(statusBuffer);
//Handle response code
}
}
}
} catch (Exception e) {
Log.e(TAG, "disconnected FROM WHILE TRUE LOOP", e);
connectionLost();
break;
}
}
あなたのコードが動作していないので、いくつかのログ情報で読み込みをラップしました: Log.i(TAG、 "WHILE LOOP:About aboutバイト ")。 \t \t \t \t \t bytes = mmInStream.read(statusBuffer); \t \t \t \t \t Log.i(TAG、 "WHILE LOOP:" + Integer.toString(bytes)+ "bytes"); しかし、私は問題に遭遇したときにその2番目のログには決してしないので、-1かどうかをチェックすることはできません。 – Bryan
そして、バッファを埋めるのではなく、1バイトを読み込むとどうなりますか? – Snicolas
同じことが起こりました。私はbyteRead = mmInstream.read()を試しました。また、1バイトのバッファと同じ結果を見た。 – Bryan