MainActivity如下:
package cc.testwifi;
import android.os.Bundle;
import android.app.Activity;
/**
* Demo描述:
* 监听Wifi网络的变化并且获得当前信号强度
*
*
*/
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
WifiChangeBroadcastReceiver如下:
package cc.testwifi;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import .wifi.WifiInfo;
import .wifi.WifiManager;
public class WifiChangeBroadcastReceiver extends BroadcastReceiver {
private Context mContext;
@Override
public void onReceive(Context context, Intent intent) {
mContext=context;
System.out.println("Wifi发生变化");
getWifiInfo();
}
private void getWifiInfo() {
WifiManager wifiManager = (WifiManager) mContext.getSystemService(mContext.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
if (wifiInfo.getBSSID() != null) {
//wifi名称
String ssid = wifiInfo.getSSID();
//wifi信号强度
int signalLevel = WifiManager.calculateSignalLevel(wifiInfo.getRssi(), 5);
//wifi速度
int speed = wifiInfo.getLinkSpeed();
//wifi速度单位
String units = WifiInfo.LINK_SPEED_UNITS;
System.out.println("ssid="+ssid+",signalLevel="+signalLevel+",speed="+speed+",units="+units);
}
}
}
AndroidManifest.xml如下:
main.xml如下: