2016-07-10 17 views
0

他のデバイスにBluetooth経由で簡単な文字列メッセージを送信しようとしています。私のコードは次のようになります:AndroidでBluetooth経由で文字列メッセージを送信するには?

private ICollection<BluetoothDevice> devicesArray; 

private void SendBtn_Click(object sender, EventArgs e) 
    { 
     BluetoothDevice bd = null; 
     foreach(var o in PairedListView.pairedDevices) 
     { 
      if(o.Selected == true) 
      { 
       bd = getPairedDevice(o.DeviceAddress); 
       break; 
      } 
     } 
     if(bd != null) 
     { 
      UUID uuid = UUID.FromString("00001101-0000-1000-8000-00805f9b34fb"); 
      BluetoothSocket socket = bd.CreateRfcommSocketToServiceRecord(uuid); 
      socket.Connect(); 
      Stream stream = socket.OutputStream; 
      byte[] array = Encoding.ASCII.GetBytes("Testing message!"); 
      stream.Write(array, 0, array.Length); 
      socket.Close(); 
     } 
     else 
     { 
      Alerts.showAlertMessage("Choose device", this); 
     } 
    } 

private BluetoothDevice getPairedDevice(string address) 
    { 
     BluetoothDevice bd = null; 
     foreach(var o in devicesArray) 
     { 
      if(o.Address == address) 
      { 
       bd = o; 
       break; 
      } 
     } 
     return bd; 
    } 

私は選択されたデバイスに受信文字列メッセージを期待しています。問題は私が間違いです。

Java.IO.IOException: Service discovery failed 

接続しようとしています。私が間違っていることを教えてください。

答えて

1

socket.getOutputStream()を使用して、関連するOutputStreamを受け取ることがあります。現在の状態をsocket.isConnected()で確認してください。

しかし、公式のGoogleの例(ブルートゥースチャット)を見てみましょう。例えばhttp://developer.android.com/samples/BluetoothChat/index.html

+0

おかげで、私はそれをチェックします。 – Shagohad

関連する問題