블루투스를 이용하여 이미지 전송 이나 파일 전송을 하는 어플을 구현 중에 있는데요

잘 돼지가 않아 질문합니다.

비트맵을 바이트로 바꾸고 이걸 다시 인코딩 합니다

그다음 보내면

수신측에서는 받아서 디코딩 하고 비트맵으로 생성하는건데 되지가 않네요

아래 구현 코드가 있습니다.

고수님들의 도움을 절대로 필요로 합니다.

보내는 부분

public void sendMyInfo(){

  Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.default_man);

 

  ByteArrayOutputStream stream = new ByteArrayOutputStream();
  
   bm.compress(CompressFormat.PNG, 100, stream);
  
   byte[] byteArray = encodeBase64(stream.toByteArray());
  
  String picture = byteArray.toString();

sendMessage(picture);

}

 

// 받아서 처리하는 부분

public void parsePacket(String readMessage){

    byte[] buffer = decodeBase64(readMessage.getBytes());

   Bitmap  other = BitmapFactory.decodeByteArray(buffer, 0, buffer.length);

}

// 인코딩 디코딩 소스

 

public static byte[] encodeBase64(byte [] binaryData) {
      byte [] buf = null;
         
     try {
          Class Base64 = Class.forName("org.apache.commons.codec.binary.Base64");
          Class[] parameterTypes = new Class[] { byte[].class }; 
         Method encodeBase64 = Base64.getMethod("encodeBase64", parameterTypes);
          buf = (byte[])encodeBase64.invoke(Base64, binaryData);
      } catch (Exception e) {
          e.printStackTrace();
      }       
        
     return buf;
  }
 
 public static byte[] decodeBase64(byte [] base64Data) {
      byte [] buf = null;
         
     try {
          Class Base64 = Class.forName("org.apache.commons.codec.binary.Base64");
          Class[] parameterTypes = new Class[] { byte[].class }; 
         Method decodeBase64 = Base64.getMethod("decodeBase64", parameterTypes);
          buf = (byte[])decodeBase64.invoke(Base64, base64Data);
      } catch (Exception e) {
          e.printStackTrace();
      }       
        
     return buf;
  }