uwp - 设备关闭 BLE 时的 BluetoothLEAdvertisementWatcher - UWP
问题描述
我做了什么:
我有一个可观察的集合
Display
。当我收到
BluetoothLEAdvertisementWatcher.Received
事件时,我会检查 RSSI。如果 RSSI > -65DBm,我将设备添加到
Display
.(RSSI 像 -60 > -127 > -57 > -127 > -63 > -127 >......我有点好奇这是否正常)
问题:
当用户关闭设备的 BT/BLE时,我可以“捕捉”吗?
- 所以我可以从中删除相应的设备
Display
。
唯一的事件是Received
,Stopped
我认为这不可能像devicewatcher那样,但仍然......
如果这是不可能的,那也没关系;请评论/回答“这不能完成”,所以我不会无缘无故地挖掘:)
任何帮助表示赞赏!
解决方案
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 来检测特定设备是否超出范围。
推荐阅读
- reactjs - 使用 useRef 反应自动建议
- security - Keycloak:身份提供者身份验证后基于客户端特定角色的访问
- sails.js - 帆:使用 NODE_ENV=production 不起作用,而 NODE_ENV=prod 工作正常
- python - 出现错误:ConnectionRefusedError:[Errno 111] 连接被拒绝
- r - R - Purrr - 使用 map() 切片,或者:如何根据 NA 切片不同长度的小标题列表?
- sql - 如何从 Oracle SQL Developer 中的时间戳列中选择日期?
- r - 在闪亮的高图地图上绘制自定义方形网格
- node.js - chrome 浏览器中的 CORS Node.js
- docker - 如何使用 caddy docker 容器仅向本地网络提供网站
- html5-canvas - HTML5 Canvas 如何填充鼠标绘制的三角形