2014-01-17 75 views
1

我可以得到蓝牙的Dbm,但我想要显示信号强度。我想,如果任何人都可以用下面的帮助:可视化Android蓝牙信号强度

  1. 最大/最小RSSI值
  2. RSSI(DBM),以百分比
  3. 简单的可视化表示(水平)。 (目前我正在使用ProgressBar来简化操作,虽然可能会让它看起来更实用和更专业)。

我发现下面的代码,这可能有助于:

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(也许这可能是对最近的?)

回答

1

对于我的Android应用程序:“b和l bluetooth le scanner”,我使用不断更新的进度条,rssi的范围为-120到-40。我还提供了限制min rssi和LE设备总数的设置,以便应用程序不会尝试为每次LE扫描更新太多的进度条。显然,您无法将LeScanCallback功能延迟超过几百毫秒,或者您可能无法在扫描中看到所有设备。为了提高效率,您可以跳过一些未更改的rssi级别的可视化更新。