2016-06-24 3 views
0

지난 며칠 동안 나는 안드로이드 서버와 윈도우 PC 소켓을 사용하여 블루투스를 통해 클라이언트 - 서버 소켓을 구축하기 위해 컴퓨터에서 정보를 보낼 수 있도록 노력 해왔다. Oculus Gear VR 용 앱 (앱은 안드로이드에 탑재 될 것입니다). 안드로이드쪽에있는 블루투스 서버 소켓에 큰 문제가 있습니다. 안드로이드 스튜디오에 대한 내 경험이 4 일 이내에 포함되는 것을 돕지 않습니다. 나는 클라이언트와의 연결을 기다리는 안드로이드 앱에 일반 서버 소켓을 만드는 법을 알아 냈다. `public class MyServer { BluetoothDevice device; 스레드 m_objThread;serversocket to bluetooth serversocket

ServerSocket m_server; 
String m_strMessage; 
DataDisplay m_dataDisplay; 
Object m_connected; 
public MyServer() 
{ 

} 
public void setEventListener(DataDisplay dataDisplay) 
{ 
    m_dataDisplay = dataDisplay; 
} 
public void startListening() 
{ 

    m_objThread = new Thread(new Runnable() { 
     public void run() { 
      try { 
       m_server = new ServerSocket(2001); 
       Socket connectedSocket = m_server.accept(); 
       Message clientmessage = Message.obtain(); 
       ObjectInputStream ois = new ObjectInputStream(connectedSocket.getInputStream()); 
       String strMessage = (String) ois.readObject(); 
       clientmessage.obj = strMessage; 
       mHandler.sendMessage(clientmessage); 
       ObjectOutputStream oos = new ObjectOutputStream(connectedSocket.getOutputStream()); 
       oos.writeObject("Hi.."); 
       ois.close(); 
       oos.close(); 
       m_server.close(); 
      } catch (Exception e) { 
       Message msg3 = Message.obtain(); 
       msg3.obj = e.getMessage(); 
       mHandler.sendMessage(msg3); 
      } 

     } 
    }); 
    m_objThread.start(); 
} 
Handler mHandler = new Handler() { 
    @Override 
    public void handleMessage(Message status) 
    { 
     m_dataDisplay.Display(status.obj.toString()); 
    } 
}; 

` 는하지만 블루투스 소켓을 만들기 위해 블루투스 서버 소켓으로 변경하는 방법을 완전히 확실하지 않다. 어떤 도움을 주셔서 감사합니다, 나는 상대적으로 코딩에 새로운 오전과 Visual Studio에서 C++만을 사용하여 android studio에 많은 문제가 발생했습니다. 감사!

답변

0

연결을 허용하는 스레드와 데이터를 보내고받는 스레드를 만들어야합니다. 장치가 연결되면 '연결 스레드'를 중지하고 '전송'스레드를 시작합니다. google-https://github.com/googlesamples/android-BluetoothChat

의 사례가 있습니다.