次のコードを使用して実行すると、InTheHand.Net.Bluetooth ライブラリを使用して Bluetooth 接続のリッスンを開始する Windows サービスを開発しています。
btListener = new BluetoothListener(service);
btListener.Start();
Windows の起動が完了した後 (Windows の起動後約 5 分間) にサービスを手動で開始すると、すべてが正常に機能し、Bluetooth サービスが正常に開始されます。
ただし、Windows サービスのスタートアップの種類を自動に設定すると、コードのその部分によって次の例外が発生します。
System.Net.Sockets.SocketException (0x80004005): An invalid argument was supplied
at InTheHand.Net.Bluetooth.Msft.SocketBluetoothClient.ThrowSocketExceptionForHR(Int32 errorCode)
at InTheHand.Net.Bluetooth.Msft.MicrosoftSdpService.SetService(Byte[] sdpRecord, ServiceClass cod)
at InTheHand.Net.Bluetooth.Msft.WindowsBluetoothListener.SetService(Byte[] sdpRecord, ServiceClass cod)
at InTheHand.Net.Bluetooth.Msft.WindowsBluetoothListener.Start(Int32 backlog)
at InTheHand.Net.Bluetooth.Msft.WindowsBluetoothListener.Start()
Bluetoothデバイスがまだ初期化されていないときに「Start」メソッドが呼び出されるのが早すぎるためだと思います。この同様の問題に遭遇した人もいますか? 正常に開始できるようにするために「開始」メソッドをいつ呼び出す必要があるかを知る方法についてのアイデアはありますか?
フィードバックやコメントをお待ちしております。
ありがとう、
コック