我正在尝试使用获取当前 wifi 连接的信号强度getRssi()
private void checkWifi(){
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo Info = cm.getActiveNetworkInfo();
if (Info == null || !Info.isConnectedOrConnecting()) {
Log.i("WIFI CONNECTION", "No connection");
} else {
int netType = Info.getType();
int netSubtype = Info.getSubtype();
if (netType == ConnectivityManager.TYPE_WIFI) {
wifiManager = (WifiManager)getApplicationContext().getSystemService(Context.WIFI_SERVICE);
int linkSpeed = wifiManager.getConnectionInfo().getLinkSpeed();
int rssi = wifiManager.getConnectionInfo().getRssi();
Log.i("WIFI CONNECTION", "Wifi connection speed: "+linkSpeed + " rssi: "+rssi);
//Need to get wifi strength
}
}
}
问题是我得到了 -35 或 -47 等数字。我不明白它们的值。我查看了 android 文档及其所有内容:
公共 int getRssi ()
自:API 级别 1 返回当前 802.11 网络的接收信号强度指示器。
这不是标准化的,但应该是!
返回 RSSI,范围为 ??? 至 ???
有人可以解释如何“规范化”或理解这些结果吗?