如何获得所连接的WiFi的Android信号强度? [英] How to get signal strength of connected WiFi android?
本文介绍了如何获得所连接的WiFi的Android信号强度?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我要得到这个无线它与我的设备连接的信号强度。这可能是容易的。但我初学者。而它的功课。如何得到它?
我想这code。但是,这是行不通的。
registerReceiver(新BroadcastReceiver的(){
@覆盖
公共无效的onReceive(上下文的背景下,意图意图){
最后WifiManager无线=(WifiManager)getSystemService(Context.WIFI_SERVICE);
INT状态= wifi.getWifiState();
如果(国家== WifiManager.WIFI_STATE_ENABLED){
名单< ScanResult>结果= wifi.getScanResults();
对于(ScanResult结果:结果){
如果(result.BSSID.equals(wifi.getConnectionInfo()。getBSSID())){
INT级别= WifiManager.calculateSignalLevel(wifi.getConnectionInfo()。getRssi(),
result.level);
INT差=等级* 100 / result.level;
INT signalStrangth = 0;
如果(差值> = 100)
signalStrangth = 4;
否则,如果(差值> = 75)
signalStrangth = 3;
否则,如果(差值> = 50)
signalStrangth = 2;
否则,如果(差值> = 25)
signalStrangth = 1;
tv.setText(tv.getText()+\ nDifference:+差+信号状态:+ signalStrangth);
}
}
}
}
},新的IntentFilter(WifiManager.RSSI_CHANGED_ACTION));
我也试过这个code。但是,这是行不通了。
INT numberOfLevels = 5;
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
INT水平= WifiManager.calculateSignalLevel(wifiInfo.getRssi(),numberOfLevels);
解决方案
希望工程。
公共无效的onReceive(WifiManager wifiManager){
INT numberOfLevels = 5;
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
INT水平= WifiManager.calculateSignalLevel(wifiInfo.getRssi(),numberOfLevels);
的System.out.println(酒吧=+级);
}
I want to get signal strength of this wifi which is connected with my device. This is probably easy. But I am beginner. And It's homework. How to get it?
I tried this code. But it doesn't work.
registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
final WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
int state = wifi.getWifiState();
if(state == WifiManager.WIFI_STATE_ENABLED) {
List<ScanResult> results = wifi.getScanResults();
for (ScanResult result : results) {
if(result.BSSID.equals(wifi.getConnectionInfo().getBSSID())) {
int level = WifiManager.calculateSignalLevel(wifi.getConnectionInfo().getRssi(),
result.level);
int difference = level * 100 / result.level;
int signalStrangth= 0;
if(difference >= 100)
signalStrangth = 4;
else if(difference >= 75)
signalStrangth = 3;
else if(difference >= 50)
signalStrangth = 2;
else if(difference >= 25)
signalStrangth = 1;
tv.setText(tv.getText() + "\nDifference :" + difference + " signal state:" + signalStrangth);
}
}
}
}
}, new IntentFilter(WifiManager.RSSI_CHANGED_ACTION));
I also tried this code. But this is doesn't work too.
int numberOfLevels = 5;
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int level = WifiManager.calculateSignalLevel(wifiInfo.getRssi(), numberOfLevels);
解决方案
Hope it works..
public void onReceive(WifiManager wifiManager) {
int numberOfLevels=5;
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int level=WifiManager.calculateSignalLevel(wifiInfo.getRssi(), numberOfLevels);
System.out.println("Bars =" +level);
}
这篇关于如何获得所连接的WiFi的Android信号强度?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文