2016-06-24 82 views
0

在過去的幾天裏,我一直在建立一個藍牙客戶端服務器套接字與android服務器和一個Windows PC套接字,所以我可以通過計算機發送信息,可用於一個應用程序的Oculus齒輪VR(應用程序將在Android上)。我在Android端的藍牙服務器套接字有一個大問題。這對我的android工作室經驗在4天之內是沒有幫助的。我想出瞭如何在Android應用程序上創建常規服務器套接字,該套接字等待來自客戶端連接的公共類MyServer,BluetoothDevice設備, 線程m_objThread;serversocket藍牙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中遇到了很多麻煩。謝謝!

回答