设备关闭 BLE 时的 BluetoothLEAdvertisementWatcher - UWP

BluetoothLEAdvertisementWatcher when device turn off BLE - UWP

我做了什么:

  1. 我有一个可观察的集合 Display

  2. 当我收到 BluetoothLEAdvertisementWatcher.Received 事件时,我检查 RSSI。

  3. 如果RSSI > -65DBm,我在Display中添加设备。

    (RSSI 变成 -60 > -127 > -57 > -127 > -63 > -127 >......我有点好奇这是否正常)


问题:

Can I 'catch' when the user turns off BT/BLE of the device?

  • so I can remove the corresponding device from Display.

唯一的事件是 ReceivedStopped,我认为这不可能像 devicewatcher 那样,但仍然...

如果这不可能,那也没关系;请只是comment/answer“这不可能完成”所以我不会白白挖掘:)

感谢任何帮助!

RSSI goes like -60 > -127 > -57 > -127 > -63 > -127 >...... I'm bit curious if this normal

这是正常现象,它取决于您的蓝牙设备灵敏度。如果您设置了以下内容,他将过滤掉不匹配的数据。但是对于我的测试 -127 将被观察者捕获。

watcher.SignalStrengthFilter.InRangeThresholdInDBm = -70;
watcher.SignalStrengthFilter.OutOfRangeThresholdInDBm = -75;

If RSSI > -65DBm, I add the device in Display

您可以使用 eventArgs.RawSignalStrengthInDBmOnAdvertisementReceived 事件处理程序中获取 RSSI 值。然后做二次过滤。

Int16 rssi = eventArgs.RawSignalStrengthInDBm;
if (rssi >= -65)
{
 // add to collection.
}

Is there a way I can catch whether a specific device is considered to be out of range?

目前,没有这样的 api 来检测特定设备超出范围。