记录一下几个常用的wifi广播方便以后自己找。
public class NetworkUtil {
/**
* 返回网络状态
* @param context
* @return
*/
public static boolean isNetworkConnected(Context context) {
if (context != null) {
ConnectivityManager mConnectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();
if (mNetworkInfo != null) {
return mNetworkInfo.isAvailable();
}
}
return false;
}
/**
* 返回当前Wifi是否连接上
* @param context
* @return true 已连接
*/
public static boolean isWifiConnected(Context context){
ConnectivityManager conMan = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = conMan.getActiveNetworkInfo();
if (netInfo != null && netInfo.getType() == ConnectivityManager.TYPE_WIFI){
return true;
}
return false;
}
/**
* 设置wifi状态
* @param isEnabled
*/
public static void setWifiEnabled(boolean isEnabled, Context context) {
Log.i("TAG", "setWifiEnabled:" + isEnabled);
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
wifiManager.setWifiEnabled(isEnabled);
}
}
wifi状态改变都会发这个广播 WifiManager.WIFI_STATE_CHANGED_ACTION
如果需要静态注册 写法是 android.net.wifi.WIFI_STATE_CHANGED
如果只需要获取wifi是否只是打开和关闭 只需要获取isWifiEnabled的值。
五个状态:
if (action.equals(WifiManager.RSSI_CHANGED_ACTION)) {
int strength = getStrength(context); //获取 wifi广播的参数
if (strength == 0) {
} else if (strength == 1) {
} else if (strength == 2) {
} else if (strength == 3) {
}else if (strength == 4) {
}
顺带一提 命令行发送广播语句是 adb shell am broadcast -a +应用包名 + ei(参数为int es 参数为string)+参数;