基于蓝牙 LE 广告的 RSSI 判断距离
当你的 Bluetooth LE Watcher 的回调被触发时,eventArgs 包含一个 RSSI 值,告诉你接收到的信号强度(有多强)
private async void OnAdvertisementReceived(BluetoothLEAdvertisementWatcher watcher, BluetoothLEAdvertisementReceivedEventArgs eventArgs)
{
// The received signal strength indicator (RSSI)
Int16 rssi = eventArgs.RawSignalStrengthInDBm;
}
这可以粗略地转换为距离,但不应该用于测量真实距离,因为每个单独的无线电是不同的。不同的环境因素会使距离难以测量(例如墙壁,收音机周围的情况,甚至空气湿度)。
判断纯距离的另一种方法是定义桶。无线电通常在非常接近时报告 0 到 -50 DBm,当它们距离中等时为 -50 到 -90,而当它们距离很远时低于 -90。试用和错误最好确定你希望这些存储桶适用于你的应用程序。