我试图使用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等数字…我不明白他们的价值观..我已经看了android文档及其所有状态:
public int getRssi ()
Since: API Level 1 Returns the received signal strength indicator of
the current 802.11 network.
This is not normalized, but should be!
Returns the RSSI, in the range ??? to ???
谁能解释如何“正常化”或理解这些结果?