난에 상태 요청 명령을 보낼 수있는 장치를 가지고 있고, 나는 그것이안드로이드 읽기 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 read 바이트 "); \t \t \t \t \t bytes = mmInStream.read (statusBuffer); \t \t \t \t \t Log.i (TAG, "WHILE LOOP :"+ Integer.toString (bytes) + "bytes"); 하지만 문제가 발생하면 두 번째 로그에 표시되지 않으므로 -1인지 아닌지 확인할 수 없습니다. – Bryan
그리고 버퍼를 채우는 대신 하나의 바이트를 읽으면 어떻게됩니까? – Snicolas
똑같은 일이 생기고, 나는 byteRead = mmInstream.read(); 또한 1 바이트 버퍼와 동일한 결과를 보았습니다. – Bryan