首页 > 解决方案 > 设备关闭 BLE 时的 BluetoothLEAdvertisementWatcher - UWP

问题描述

我做了什么:

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

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

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

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


问题:

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

  • 所以我可以从中删除相应的设备Display

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

如果这是不可能的,那也没关系;请评论/回答“这不能完成”,所以我不会无缘无故地挖掘:)

任何帮助表示赞赏!

标签: uwpbluetoothbluetooth-lowenergywindows-10-universalgatt

解决方案


RSSI 像 -60 > -127 > -57 > -127 > -63 > -127 >......我有点好奇这是否正常

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

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

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

您可以在OnAdvertisementReceived事件处理程序中使用eventArgs.RawSignalStrengthInDBm. 然后做二次过滤。

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

有没有办法可以捕捉到特定设备是否被认为超出范围?

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


推荐阅读