0

BT를 사용하여 PC와 Android간에 통신을 구현할 때 문제가 발생했습니다. 나는 표준 자바 소켓과 그 스트림을 사용하여 WIFI 통신에서 올바르게 작동하는 애플리케이션을 가지고있다. Bt 통신을 추가하려고합니다. 스트림을 여는 안드로이드 쪽 코드 (통신이 설정되고, 괜찮아요) 표준 BluetoothSocket을 사용하여 PC 측면에서블루투스와 ObjectOutputStream 및 ObjectInputStream을 사용하여 Android와 PC간에 객체를 전송하는 방법은 무엇입니까?

mOos = new ObjectOutputStream(btSocket.getOutputStream()); 
mOos.flush(); 
mOis = new ObjectInputStream(btSocket.getInputStream()); 

내가 Bluecove 2.1 사용합니다.

mOos = new ObjectOutputStream(mStreamConn.openOutputStream()); 
mOos .flush(); 
mOis = new ObjectInputStream(mStreamConn.openInputStream()); 

스트림이 올바르게 초기화되었습니다. 나는 PC

protected synchronized void sendAwaitingMsg() throws IOException { 
    Message msg; 
    while((msg = mOutgoingMsgQueue.poll()) != null) { 
     mOos.writeObject(msg); 
    } 
    mOos.flush(); 
} 

에 안드로이드에서 초기 메시지를 전송 그리고 PC 측에서 그것을 읽으려고하고

protected void getIncomingMsg() throws IOException, ClassNotFoundException { 
    if(mOis.available() > 0) { 
     Message msg = (Message)mOis.readObject(); 

     if(msg.mControlHeader > 0) { 
      mKeepRunning = false; 
     } else { 
      msg.setHandlerId(mId); 
      mConnectionManager.acceptNewMessage(msg); 
     } 
    } 
} 

그러나 mOis.available는()는 송신 메시지를받지 않는 것을 의미합니다 항상 0입니다 . 내 메시지 개체 클래스 : 표준 자바 소켓

public class Message extends LinkedHashMap implements Serializable, Comparable { 
static final long serialVersionUID = 10275539472837495L; 

protected long mHandlerId; 
protected int mType; 
protected int mPriority; 
public int mControlHeader = 0; 



public int getType() { 
    return mType; 
} 

public void setType(int type) { 
    this.mType = type; 
} 

public long getHandlerId() { 
    return mHandlerId; 
} 

public void setHandlerId(long handlerId) { 
    this.mHandlerId = handlerId; 
} 

public int getPriority() { 
    return mPriority; 
} 

public void setPriority(int priority) { 
    mPriority = priority; 
} 

@Override 
public int compareTo(Object o) { 
    return mPriority - ((Message)o).mPriority; 
} 

}

같은 작업 및 네트워크 통신은 매력처럼 작동합니다. 문제가 어디에 있습니까?

답변

1

나는 안드로이드와 PC 사이의 bluetooh 통신에 비슷한 문제가있었습니다. 드디어 다음 링크를 여기에 (자바 블루투스 라이브러리의 구현)과 좋은 주석 예를 bluecove에 대한 몇 가지 정보를 발견

http://fivedots.coe.psu.ac.th/~ad/jg/blue1/blueEcho.pdf

:

http://fivedots.coe.psu.ac.th/~ad/jg/blue4/blueCoveEcho.pdf

여기에 또 다른 예는있다하지만 bluecove를 사용하지 않고

도움이 되었기를 바랍니다.