我可以获得蓝牙的Dbm,但我希望可视化信号强度。我猜是否有人可以提供以下帮助:
我确实找到了以下代码,这可能有所帮助:
public static int calculateSignalLevel(int rssi, int numLevels) {
if (rssi <= MIN_RSSI){return 0;}
else if (rssi >= MAX_RSSI){return numLevels - 1;}
else {
int partitionSize = (MAX_RSSI - MIN_RSSI) / (numLevels - 1);
return (rssi - MIN_RSSI) / partitionSize;
}
}
编辑:在我的笔记本电脑旁边,我得到-60到-70(也许这可能是最接近的?)
答案 0 :(得分:1)
对于我的Android应用程序:“b和l bluetooth le scanner”,我使用不断更新进度条,rssi的范围为-120到-40。我还提供了限制min rssi和LE设备总数的设置,以便应用程序不会尝试为每个LE扫描更新太多进度条。显然,您不能将LeScanCallback功能延迟超过几百毫秒,否则您可能无法在扫描中看到所有设备。为了提高效率,您可以跳过一定数量的未更改的rssi级别的可视更新。