DeviceWatcher和BluetoothLEAdvertisementWatcher类和Timeout属性之间的区别

时间:2018-05-07 08:41:31

标签: uwp timeout connection bluetooth-lowenergy advertisement

我已经构建了一个Windows 10应用程序,可以监视特定的广告并与之连接。

我使用示例"BluetoothLE" from "Windows-universal-samples"进行了一些编辑。在这个例子中,他们使用" DeviceWatcher"类。

但我现在正试图在特定时间段后添加超时以断开连接。 我发现了这个属性:OutOfRangeTimeout属于BluetoothLEAdvertisementWatcher Class。

现在我很困惑" DeviceWatcher"之间的区别是什么? AND" BluetoothLEAdvertisementWatcher"?

有没有办法添加"超时"使用DeviceWatcher Class?

1 个答案:

答案 0 :(得分:4)

“DeviceWatcher”类和“BluetoothLEAdvertisementWatcher”类之间存在很大差异。
deviceWacher处于系统级别;含义您必须先在Windows设置中添加设备才能找到它 这也意味着该设备始终存在于Windows.Devices.Enumeration中,除非您从Windows设置中删除它。
设备观察程序需要很长时间才能完成 另外,要创建一个运行良好的应用程序,您必须实现所有添加,删除和更新的事件 在有设备添加,删除或更新时收到通知 如果应用只处理添加的事件, 如果在初始设备枚举完成后将设备添加到系统,它将不会收到更新。

BluetoothLEAdvertisementWatcher仅侦听发送广告且触手可及的BLe设备。
如果将scanMode设置为活动状态,则观察者会尝试获取设备的所有信息,例如名称,功能,ble-Address, 服务广告有效载荷等。
为scanMode被动设置它,观察者只使用名称和Ble-address监听设备,这更快 扫描时间仅取决于触及范围内的设备数量及其广告时间间隔。 OutOfRangeTimeout指的是BluetoothSignalStrengthFilter,它决定设备是否无法使用。

至于断开的时间:

蓝牙LE设备API无法直接控制与设备的连接 相反,如果没有未完成的引用,Bleutooth-stack将在一秒钟超时后断开设备 因此,您必须使用计时器来设置timeOut并关闭并丢弃设备!