2017-01-04 3 views
3

Bluetoothマネージャタイプのクラスを作成しようとしています。クラスは、アプリケーションでホワイトリストに登録されているすべてのペアリングされていないBluetoothデバイスを検索し、それらを内部デバイスリストに追加します。Windowsでデバイスを追加/削除するときにBluetoothイベントを受信しない

_deviceWatcher = DeviceInformation.CreateWatcher(_selector, 
        null, DeviceInformationKind.AssociationEndpoint); 

だけでなく、次のイベントをサブスクライブすることによって:私はこの次のコードを使用してください

私がホワイトリストに登録しているBluetoothデバイスがオンになっている場合

_deviceWatcher.Added += _deviceWatcher_Added; 
_deviceWatcher.Removed += _deviceWatcher_Removed; 
_deviceWatcher.EnumerationCompleted += _deviceWatcher_EnumerationCompleted; 

、デバイスウォッチャーが見つかりましたデバイス。しかし、私はデバイスをオフにする場合、私は決して "削除"イベントを取得します。

デバイスがオフで、「列挙完了」イベントの受信を待ってからデバイスをオンにすると、「追加された」イベントは発生しません。

私はMicrosoft提供のサンプル( "DeviceEnumerationAndPairing")を試しましたが、そのサンプルは同じように動作します。

以下に示すように、私は、私のプログラムの実行を継続し、Bluetoothの設定を開く場合:

http://imgur.com/a/CG6r1

その後、期待どおりに動作し、オフにするとき、私は「更新」と「削除」イベントを取得デバイスの電源を切る。

利用可能なBluetoothデバイスを検出できるようにするには、何らかのスキャンルーチンをアクティブにする必要がありますか?もしそうなら、どうすればよいですか?

答えて

0

アプリは、追加、削除、更新されたすべてのイベントを購読して、デバイスの追加、削除、更新があったときに通知する必要があります。アプリケーションが追加されたイベントだけを処理する場合、初期デバイス列挙が完了した後にデバイスがシステムに追加された場合、更新は受信されません。

詳細については、備考:DeviceInformation.CreateWatcherを参照してください。

文書によれば、DeviceWatcherの追加、削除、および更新されたイベントを追加できるはずです。デバイスを閉じると、削除されたイベントが発生します。

デバイスをペアにして閉じると、Removedイベントは発生しませんのでご注意ください。また、Bluetooth設定では削除されません。

関連する問題