设备关闭BLE时的BluetoothLEAdvertisementWatcher-UWP

时间:2019-12-16 07:54:59

标签: uwp bluetooth bluetooth-lowenergy windows-10-universal gatt

我所做的事情:

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

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

  3. 如果RSSI> -65DBm,则将设备添加到Display中。

    (RSSI类似于-60> -127> -57> -127> -63> -127> ......如果这种情况正常,我有点好奇)


问题:

  

当用户关闭设备的BT / BLE时我可以“捕获”吗?

     
      
  • 因此我可以Display移除相应的设备
  •   

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

如果这不可能,那也很好;请发表评论/回答“这无法完成”,这样我就什么也不做:)

任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:0)

  

RSSI就像-60> -127> -57> -127> -63> -127> ......我对此很好奇

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

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

如果RSSI> -65DBm,则将设备添加到Display

您可以使用OnAdvertisementReceivedeventArgs.RawSignalStrengthInDBm事件处理程序中获得RSSI值。然后进行二次过滤。

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

有没有一种方法可以捕获特定设备是否超出范围?

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