android 获取wifi 信号质量

转于: http://yidongkaifa.iteye.com/blog/1780456
 
-----------------------------------------------------------------------------
 
int strength = WifiManager.calculateSignalLevel(info.getRssi(), 5);即信号强度。
 

获取方法:

private String obtainWifiInfo() {

// Wifi的连接速度及信号强度:
WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
// WifiInfo wifiInfo = wifiManager.getConnectionInfo();
WifiInfo info = wifiManager.getConnectionInfo();
if (info.getBSSID() != null) {
// 链接信号强度
int strength = WifiManager.calculateSignalLevel(info.getRssi(), 5);
// 链接速度
int speed = info.getLinkSpeed();
// 链接速度单位
String units = WifiInfo.LINK_SPEED_UNITS;
// Wifi源名称
String ssid = info.getSSID();
}
return info.toString();
}
 
//////////////////////////// wifi 信号变化 :
注册 receiver,
 
public BroadcastReceiver rssiReceiver = new BroadcastReceiver() {
 
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
Log.d("Rssi", "RSSI changed");
// wifiInfo.setText(obtainWifiInfo());
 
}
};
@Override
public void onResume() {
super.onResume();
registerReceiver(rssiReceiver, new IntentFilter(WifiManager.RSSI_CHANGED_ACTION));
 
Log.d("Rssi", "Registered");
}
 
@Override
public void onPause() {
super.onPause();
 
unregisterReceiver(rssiReceiver);
Log.d("Rssi", "Unregistered");
}

你可能感兴趣的:(android)