암칩에서 블루투스를 이용해서 핸드폰으로 자료를 전송하는 시스템입니다.

private final Handler mHandler = new Handler()
{
//@Override
public void handleMessage(Message msg) 
{
switch (msg.what) {
case MESSAGE_READ:
byte[] readBuf = (byte[]) msg.obj;
String readMessage = new String(readBuf,0,msg.arg1);

SM += readMessage;
if(readMessage.lastIndexOf('X') !=-1)
{
int indexR = SM.lastIndexOf('R');
int indexX = SM.lastIndexOf('X');
SM = SM.substring(indexR+1, indexX);
int SML = SM.length() / 21;
qlry = new String("123456789012345678901");
for (int z=SML; z>0; z--)
{
dnjsqhs = new String(SM.substring(21*(z-1), 21*z));
if (!dnjsqhs.equals(qlry))
{
mCAA.add(dnjsqhs);
}
}
break; 
}
//----------------------------------------------------------------------------------------------------------------------

private class ConnectedThread extends Thread {
private final BluetoothSocket mmSocket;
private InputStream mmInStream;
   
public ConnectedThread(BluetoothSocket socket)
{
mmSocket = socket;
try{
mmInStream = new BufferedInputStream(socket.getInputStream());
}catch (IOException e) {}
}
public void run()
{
byte[] buffer = new byte[1024];
int bytes;

while (true) {
try {
bytes = mmInStream.read(buffer);
if (bytes > 0){
mHandler.obtainMessage(MESSAGE_READ, bytes, -1, buffer).sendToTarget();
}
}catch (IOException e) {
break;
}
}
};
}

보시면... 스레드 돌면서 데이터가 들어오면...

핸들러이용해서 SM 에 메세지를 모읍니다.

저건 테스트를 할려고 고친 부분인데요

'123456789012345678901' 이 옳바른 메세지이고 그이외의 메세지는 걸러서 리스트 뷰에 표시하도록 

해놨는데요...

분명 고의적으로 낸 에러부분 1개빼고 1000번의 전송중...

에러가.. 계속 나는데요...무작위로..어떨땐 4개.. 어떨땐 11개..... 숫자가 하나밀려서.. (123456789011234578901) 이런식으로..

이유가 뭔지.. 알고싶습니다.. 몇일째.. ㅠ.ㅠ 너무 머리 아퍼요...

부탁드립니다 ㅠ.ㅠ