32feet.net を使用して接続しようとしているデジタル ヒューマン インターフェイス デバイスがあるので、そこから入力データを読み取り、アプリケーションで出力を処理できます。これまで Bluetooth でプログラミングしたことがなく、学習しながら学んでいます。
microsoft/broadcom スタックを使用してデバイスを Windows 7 に問題なく接続できます。32feet.net を使用してデバイスを検出することもできますが、接続しようとするとエラーが発生します。BluetoothRadio.IsSupported を使用してスタックがサポートされていることを確認しました。コード スニペットは次のとおりです。
var client = new BluetoothClient();
var dlg = new SelectBluetoothDeviceDialog();
DialogResult result = dlg.ShowDialog(this);
if (result != DialogResult.OK)
{
return;
}
BluetoothDeviceInfo device = dlg.SelectedDevice;
BluetoothAddress addr = device.DeviceAddress;
Console.WriteLine(device.DeviceName);
Guid serviceClass = BluetoothService.HumanInterfaceDevice;
client.Connect(new BluetoothEndPoint(addr, serviceClass));
最後の行により、次のエラーが発生します: System.dll で「System.Net.Sockets.SocketException」タイプの最初のチャンス例外が発生しました
client.Connect を使用して、他の方法もいくつか試しました。DiscoverDevices を使用して DeviceInfo 配列を取得し、その配列からデバイスを手動で選択して接続しようとしました。DeviceInfo.ClassOfDevice.Service を使用するとそれが表示されるため、serviceClass を Empty に設定してみました。DeviceInfo.SetServiceState(BluetoothService.HumanInterfaceDevice, true) を使用してデバイスを Windows に接続できましたが、そこからストリームを取得できませんでした。
Windows で接続した後にデバイスからデータ ストリームを取得できたとしても、それで問題ありません。ここでの私の目標は、ボタンを押すようにデバイスからの入力を読み取ることができるようにすることです。