DeviceWatcher 和 BluetoothLEAdvertisementWatcher class 和 Timeout 属性 之间的区别
Difference between DeviceWatcher and BluetoothLEAdvertisementWatcher class and Timeout property
我构建了一个 windows 10 应用程序,用于监视特定广告并与之连接。
我使用示例 "BluetoothLE" from "Windows-universal-samples" 并进行了一些编辑。在这个例子中,他们使用了 "DeviceWatcher " Class.
但我现在正尝试添加超时以在特定时间段后断开连接。
我发现这个 属性: OutOfRangeTimeout 属于 BluetoothLEAdvertisementWatcher Class.
现在我很困惑 "DeviceWatcher" 和 "BluetoothLEAdvertisementWatcher" 之间有什么区别?
有没有办法使用 DeviceWatcher Class 添加 "timeout"?
"DeviceWatcher "Class和BluetoothLEAdvertisementWatcher
Class有很大区别。 deviceWacher 是系统级的;这意味着您必须先在 Windows 设置中添加设备,然后才能找到它。这也意味着该设备始终存在于 Windows.Devices.Enumeration 中,除非您将其从 Windows 设置中删除。设备观察器需要很长时间才能完成。此外,为了制作一个运行良好的应用程序,您必须实现所有添加、删除和更新事件,以便在有设备添加、删除或更新时得到通知。如果应用仅处理添加的事件,则在初始设备枚举完成后将设备添加到系统时,它不会收到更新。
BluetoothLEAdvertisementWatcher
仅侦听发送广告且触手可及的 BLE 设备。如果将 scanMode
设置为主动,观察者会尝试获取设备上的所有信息,如名称、功能、ble-Address、服务广告有效负载等。将其设置为 scanMode
被动,观察者仅侦听使用名称和 Ble-address 的设备,速度更快。
扫描时间仅取决于范围内的设备数量及其广告间隔。 OutOfRangeTimeout
指的是 BluetoothSignalStrengthFilter
决定设备是否遥不可及。
至于断开连接超时:
蓝牙 LE 设备 API 不提供对设备连接的直接控制。相反,如果没有未完成的引用,蓝牙堆栈将在一秒超时后断开设备。所以你必须使用计时器来设置你的超时时间并关闭并处理设备!
我构建了一个 windows 10 应用程序,用于监视特定广告并与之连接。
我使用示例 "BluetoothLE" from "Windows-universal-samples" 并进行了一些编辑。在这个例子中,他们使用了 "DeviceWatcher " Class.
但我现在正尝试添加超时以在特定时间段后断开连接。 我发现这个 属性: OutOfRangeTimeout 属于 BluetoothLEAdvertisementWatcher Class.
现在我很困惑 "DeviceWatcher" 和 "BluetoothLEAdvertisementWatcher" 之间有什么区别?
有没有办法使用 DeviceWatcher Class 添加 "timeout"?
"DeviceWatcher "Class和BluetoothLEAdvertisementWatcher
Class有很大区别。 deviceWacher 是系统级的;这意味着您必须先在 Windows 设置中添加设备,然后才能找到它。这也意味着该设备始终存在于 Windows.Devices.Enumeration 中,除非您将其从 Windows 设置中删除。设备观察器需要很长时间才能完成。此外,为了制作一个运行良好的应用程序,您必须实现所有添加、删除和更新事件,以便在有设备添加、删除或更新时得到通知。如果应用仅处理添加的事件,则在初始设备枚举完成后将设备添加到系统时,它不会收到更新。
BluetoothLEAdvertisementWatcher
仅侦听发送广告且触手可及的 BLE 设备。如果将 scanMode
设置为主动,观察者会尝试获取设备上的所有信息,如名称、功能、ble-Address、服务广告有效负载等。将其设置为 scanMode
被动,观察者仅侦听使用名称和 Ble-address 的设备,速度更快。
扫描时间仅取决于范围内的设备数量及其广告间隔。 OutOfRangeTimeout
指的是 BluetoothSignalStrengthFilter
决定设备是否遥不可及。
至于断开连接超时:
蓝牙 LE 设备 API 不提供对设备连接的直接控制。相反,如果没有未完成的引用,蓝牙堆栈将在一秒超时后断开设备。所以你必须使用计时器来设置你的超时时间并关闭并处理设备!