我正在尝试使用getRssi()
来获取当前wifi连接的信号强度。
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等数字,但我不理解它们的值。我查看了安卓文档,但仅有以下内容:
public int getRssi ()
自API Level 1:返回当前802.11网络的接收信号强度指示器。
这不是归一化的,但应该是!
返回范围在???到???之间的RSSI。
请问有人能解释如何“归一化”或理解这些结果吗?