UWP DeviceWatcher为已关闭电源的设备引发已添加事件

时间:2017-05-13 18:05:33

标签: c# bluetooth uwp

我创建了一个设备观察器:

DeviceInformation.CreateWatcher(BluetoothLEDevice.GetDeviceSelectorFromDeviceName("..."));

如果我正在寻找的蓝牙设备已关机,则会立即引发添加事件,然后发生已删除事件。如果它已启动,我只会收到一个已添加的事件。

如果观察者先前发现了设备,那么设备是否会以某种方式被缓存,这就是导致添加事件被关闭的原因是什么?有办法防止这种情况吗?

1 个答案:

答案 0 :(得分:0)

  

如果观察者以前发现了设备,那么设备是否会以某种方式进行缓存,这是什么导致添加事件在关闭后会被提升?有办法防止这种情况吗?

观察者不会缓存设备,DeviceWatcher的枚举来自系统级别,检查蓝牙设备状态变化需要一些时间。这不是即时回应。

如果您想要测试DeviceWatcher,请参阅以下步骤。

  1. 打开系统设置 - >设备 - >添加蓝牙或其他设备 - >蓝牙。
  2. enter image description here

    1. 开始DeviceWatcher。您会发现设备信息会快速显示在列表视图中。因为列表视图的数据源来自系统级集合。

    2. 停止你的DeviceWatcher,然后停止你的蓝牙设备,直到你找不到你的蓝牙设备信息为"添加一个设备"窗口。

    3. 开始DeviceWatcher。您会发现您的蓝牙设备信息不会再次显示,并且应用程序不会像您提到的那样引发事件

    4. 注意

      对于第三步,如果您在蓝牙设备的信息消失之前启动DeviceWatcher"添加设备"列表,那么事件执行顺序就像你提到的那样。