2012-04-13 9 views
2

私は、2人のプレイヤーのためにtic tacをビルドしています。データを交換するためにBluetooth接続が必要です。Bluetoothを有効にして「BluetoothServerSocket」とクライアント「BluetoothSocket」の問題を発見できます。 tがこの部分を操作する方法を知っている、 は、これはコードです:Bluetoothソケット

ArrayList<String>al=new ArrayList<String>(); 
     BluetoothAdapter ba = BluetoothAdapter.getDefaultAdapter(); 
     Set<BluetoothDevice> pairedDevices = ba.getBondedDevices(); 


     if(pairedDevices.size()>0) 
      for(BluetoothDevice d: pairedDevices) 
       al.add(d.getName()+" , "+d.getAddress()); 

        if (!ba.isEnabled()) 
         ba.enable(); 

        BluetoothDevice device; 
        Intent dis=new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE); 
        dis.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION,300); 
        startActivity(dis); 

        BluetoothSocket socket = device.createRfcommSocketToServiceRecord(UUID); 
        socket.connect(); 

        InputStream is=socket.getInputStream(); 
        OutputStream os=socket.getOutputStream(); 

答えて

1

プレイヤーはあなたがいるInputStreamsとOutputStreamsを使用してデータを受信/送信できる使用して「BluetoothSocketの上で通信されます両方。しかし、このようなソケットのペアを取得するには、このことを行うことができます:

BluetoothServerSocketを1つのプレーヤーの側に作成し、他のプレーヤーの側にBluetoothServerSocketを作成します。 BluetoothServerSocketは、クライアントのBluetoothSocketが接続するまでブロックする 'accept'メソッドを使用して接続を待機します。その後、BluetoothServerSocket.accept()メソッドはBluetoothSocketを返します。このBluetoothSocketはクライアントBtsocketと双方向情報転送に使用できます。このことができます

希望...

PS:createRfcommSocketToServiceRecordはちょうど上記の1つのなどのクライアントを作成します。あなたは両側に同じUUIDを使用することができます

0

データ交換に関しては、多くの複雑さを欠いているようです。主に、データを受信/送信するスレッドを処理する必要があります。ここでは、私が話していることの完全な実装を持っています:https://github.com/buddles/AndBT/blob/master/AndBT/src/br/pucrs/tcii/BluetoothService.java

すでに実装されているライブラリを使用すると思われましたか?このプロジェクトには、最大7つの接続をサポートするTicTacToeサンプルとチャットアプリが付属しています:https://github.com/buddles/AndBT

0

linkを参照してください。これは、簡単なブルートゥースチャットアプリです。このアプリを変更して、必要なデータを送受信できます。