Was ist die Bedeutung von Rssi in android WifiManager
Ich versuche, das signal-Stärke der aktuellen WLAN-Verbindung mit 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
}
}
}
Sache ist, bekomme ich zahlen wie -35 oder -47 ect.. und ich verstehe nicht, Ihre Werte.. ich habe mir die android-Dokumentation, und alle, die es Staaten:
public int getRssi ()
Seit: API-Ebene 1 Gibt die received signal strength indicator der
die aktuellen 802.11-Netzwerk.Dies ist nicht normiert, aber sein sollte!
Liefert den RSSI, im Bereich ??? die ???
kann mir jemand erklären, wie "normalisieren" oder zu verstehen, die diese Ergebnisse?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nach IEEE 802.11 Dokumentation: Weniger negative Werte bezeichnen höhere Signalstärke.
Der Bereich liegt zwischen -100 bis 0 dBm, näher an 0 ist eine höhere Festigkeit und Umgekehrt.
Fand ich diese in WifiManager.java :
Entsprechenden rssi-Reihe auf android ist betwwen -100 und -55.
Gibt es diese statische Methode WifiManager.calculateSignalLevel(rssi,numLevel) wird, berechnen Sie den signal-level für Sie :
ist wieder eine Zahl zwischen 0 und 4 (d.h. numLevel-1) : die Anzahl der Balken, die Sie sehen in der Symbolleiste.
Aus der wikipedia:
So ist dies stark abhängig von der Ausrüstung.
ab ben75 Antwort, wir können diese Methode verwenden zu normalisieren, rssi: