void beginListenForData() {
final Handler handler = new Handler()
readBufferPosition = 0;
mWorkerThread = new Thread(new Runnable()
{
@Override
public void run() {
while(!Thread.currentThread().isInterrupted()) {
try {
int byteAvailable = mInputStream.available();
if(byteAvailable > 0) {
byte[] packetBytes = new byte[byteAvailable];
mInputStream.read(packetBytes);
for(int i=0; i<byteAvailable; i++) {
byte b = packetBytes[i];
if(b == mCharDelimiter){
byte[] encodedBytes = new byte[readBufferPosition];
System.arraycopy(readBuffer, 0, encodedBytes, 0, encodedBytes.length);
final String data = new String(encodedBytes, "US-ASCII");
readBufferPosition = 0;
handler.post(new Runnable(){
@Override
public void run() {
tv_RB.setText(tv_RB.getText().toString() + data+ mStrDelimiter);
}
});
}
else {
readBuffer[readBufferPosition++] = b;
일반적으로 많이 쓰이는 블루투스 송수신코드입니다.
아트메가로 87 이라는 데이터를 보내고 있는데 화면에 출력이 되지 않아서 toast를 통해 코드가 어디까지 동작하는지 확인해본 결과
if(b == mCharDelimiter)
아래부터 toast메세지가 출력되지 않습니다.
저 부분을 어떻게 해결해야 데이터가 출력될까요?