我所做的事情:
我有一个可观察的集合Display
。
当我收到BluetoothLEAdvertisementWatcher.Received
事件时,我会检查RSSI。
如果RSSI> -65DBm,则将设备添加到Display
中。
(RSSI类似于-60> -127> -57> -127> -63> -127> ......如果这种情况正常,我有点好奇)
问题:
当用户关闭设备的BT / BLE时我可以“捕获”吗?
- 因此我可以从
Display
移除相应的设备。
唯一的事件是Received
和Stopped
,我认为不可能像devicewatcher那样发生,但仍然...
如果这不可能,那也很好;请发表评论/回答“这无法完成”,这样我就什么也不做:)
任何帮助表示赞赏!
答案 0 :(得分:0)
RSSI就像-60> -127> -57> -127> -63> -127> ......我对此很好奇
这是正常现象,它取决于您的蓝牙设备的灵敏度。如果您设置了以下内容,他将筛选出不匹配的数据。但是对于我的测试,-127
将由观察者捕获。
watcher.SignalStrengthFilter.InRangeThresholdInDBm = -70;
watcher.SignalStrengthFilter.OutOfRangeThresholdInDBm = -75;
如果RSSI> -65DBm,则将设备添加到Display
您可以使用OnAdvertisementReceived
在eventArgs.RawSignalStrengthInDBm
事件处理程序中获得RSSI值。然后进行二次过滤。
Int16 rssi = eventArgs.RawSignalStrengthInDBm;
if (rssi >= -65)
{
// add to collection.
}
有没有一种方法可以捕获特定设备是否超出范围?
当前,没有这样的api来检测特定设备超出范围。