2011-04-25 8 views
0

나는 J2ME 응용 프로그램을 사용하여 데이터를 프린터로 인쇄했습니다. 하지만 이제는 코드를 Android 코드로 변환해야합니다.android 블루투스 프린터 연결?

내 문제는 : 내 장치 Galaxy Tab Froyo에서 블루투스를 통해 모바일 프린터로 데이터 바이트 []를 보낼 수 없습니까?

여기 내 간단한 코드는 : 내가 로그 캣을 볼 때

UUID MY_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"); 
BluetoothSocket btSocket btSocket = device.createRfcommSocketToServiceRecord(MY_UUID); 
btSocket.connect(); 
OutputStream outStream = btSocket.getOutputStream(); 
String message = "this is message"; 
byte[] msgBuffer = message.getBytes(); 
outStream.write(msgBuffer.length); 
outStream.write(msgBuffer); 

, 그것은 보여 그 전 에러없이 모든 과정을 통해.

아무도 도와 줄 수 있습니까? 사전에

덕분에,

AQL

답변

1

내 마음에 오는 첫번째 것은 당신이 쓰는 것을 잊었 outStream.close()입니다. 내가 틀렸을지라도

+1

예. 프린터는 전체 페이지 분의 데이터 (또는 양식 공급) 또는 인쇄가 시작되기 전에 데이터의 끝을 기다릴 것입니다. – alanjmcf

+0

[BufferedWriter] (http://docs.oracle.com/javase/1.4.2/docs/api/java/io/BufferedWriter.html)를 사용해 보셨습니까? 'BufferedWrited writer = new BufferedWriter (outStream, SIZE);와 같습니다. 그런 다음 다른 버퍼 크기 값으로 실험하십시오. –

0

인쇄 할 내용 (텍스트, 이미지, 바코드)을 프린터에 알려줘야합니다. 모든 블루투스 프린터는이를 처리하기 위해 sam ehexadecimal 코드를 사용합니다. 시도 :

 byte[] arrayOfByte1 = { 27, 33, 0 }; //This defines the FontType we use 2 in the next line for 0 thats the default Font. 
     byte[] printformat = { 0x1B, 0x21,(byte)(0x8|arrayOfByte1[2]) }; 

     btoutputstream = btsocket.getOutputStream(); 

     btoutputstream.write(printformat); 
     btoutputstream.write(printAlign); 
     btoutputstream.write(message.getBytes());