2016-06-24 4 views
0

過去数日間、私はアンドロイドサーバーとWindows PCソケットを使用してBluetooth経由でクライアント/サーバーソケットを確立するために作業していました。 Oculus Gear VRのアプリ(アプリはアンドロイド上にあります)。私はアンドロイド側のBluetoothサーバーソケットに大きな問題があります。アンドロイドスタジオでの私の経験が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()); 
    } 
}; 

` しかし、私は、Bluetoothソケットを作成するためのBluetoothサーバソケットにこれを変更する方法を完全に確認していません。どのような助けをいただければ幸いです。私は比較的新しいコーディングをしており、Visual StudioでのみC++を使用していますので、アンドロイドスタジオで多くの問題を抱えています。ありがとう!

答えて

0

接続を受け入れるスレッドとデータを送受信するスレッドを作成する必要があります。デバイスが接続されている場合は、 'スレッドの接続'を停止し、 '転送'スレッドを開始します。 google-https://github.com/googlesamples/android-BluetoothChatの例があります。

関連する問題