2014-05-19 1 views
1

원시 출력을 보내는 바코드 스캐너가 있습니다. 나는 그 산출물이 무엇인지 알기 위해 노력하고있다.블루투스 바코드 스캐너의 디코딩 출력

바이트 배열을 수신합니다. 내가 문자열로 직접 표시하는 경우 :이 얻을

String numberToDisplay = ""; 
// Read from the InputStream 
bytes = mmInStream.read(buffer); 
for (int i=0; i<bytes; i++) { 
    numberToDisplay = numberToDisplay.concat(Integer.toString((int)buffer[i] & 0xff)); 
} 
mDisplayer.display(numberToDisplay); 

: 나는 다음에 표시 코드를 변경하는 경우 지금

(4}�����A���L�*�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� 

:

byte[] buffer = new byte[1024]; // buffer store for the stream 
int bytes; // bytes returned from read() 

// Keep listening to the InputStream until an exception occurs 
while (true) { 
    try { 
     // Read from the InputStream 
     bytes = mmInStream.read(buffer); 

     mDisplayer.display(new String(buffer)); 
    } catch (IOException e) { 
     break; 
    } 
} 

나는이 얻을

1628405212513714915817024765139151223217614142 

하지만 실제 숫자는 바코드는 다음과 같습니다.

0003001095504 

어떻게 올바르게 읽을 수 있습니까?

편집는 :

00010000 (10) 
00011100 (1C) 
00101000 (28) 
00110100 (34) 
01111101 (7D) 
10001001 (89) 
10010101 (95) 
10011110 (9E) 
10101010 (AA) 
11110111 (F7) 
01000001 (41) 
10001011 (8B) 
10010111 (97) 
11011111 (DF) 
00010101 (15) 
01001100 (4C) 
10001101 (8D) 
00101010 (2A) 

답변

1

당신이 블루투스 장치에 "SPP"를 사용할 수 있는지 확인하십시오 : 나는 바이트를 표시하는 경우

나는이 얻을.

/** For this data to be *right* you must enable SPP mode on the barcode scanner. */ 
numberToDisplay = new String(buffer, 0 , bytes);