public class NetworkChangeReceiver extends BroadcastReceiver {
private final static String TAG = "Monitor_NetworkChangeReceiver";
private final static int STATUS_WIFI = 2;
private final static int STATUS_GPRS = 1;
private final static int STATUS_ERROR = 0;
private static int mStatus = 2;
@Override
public void onReceive(Context context, Intent intent) {
Logger.d(TAG, "");
Logger.d(TAG, "网络状态改变,进入onReceive方法");
int tempStatus = -1;
// 获得网络连接服务
ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
State state_wifi = null;
State state_gprs = null;
try {
state_wifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState(); // 获取网络连接状态
} catch (Exception e) {
Logger.d(TAG, "测试机没有WIFI模块");
}
try {
state_gprs = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState(); // 获取网络连接状态
} catch (Exception e) {
Logger.d(TAG, "测试机没有GPRS模块");
}
if (null != state_wifi && State.CONNECTED == state_wifi) { // 判断是否正在使用WIFI网络
tempStatus = STATUS_WIFI;
Logger.d(TAG, "mStatus=" + mStatus + "改变后的网络为WIFI");
} else if (null != state_gprs && State.CONNECTED == state_gprs) { // 判断是否正在使用GPRS网络
tempStatus = STATUS_GPRS;
Logger.d(TAG, "mStatus=" + mStatus + "改变后的网络为GPRS");
} else {
tempStatus = STATUS_ERROR;
Logger.d(TAG, "mStatus=" + mStatus + "改变后的网络为ERROR");
}
if (mStatus != tempStatus) {
BaseAct.initOption();
Logger.d(TAG, "mStatus与改变后的网络不同,网络真的改变了");
} else {
Logger.d(TAG, "mStatus与改变后的网络相同,不处理");
}
mStatus = tempStatus;
}
}
Android网络状态广播监听
最新推荐文章于 2022-08-31 15:28:08 发布