//清单文件中添加权限
<!--上网权限 和 获取网络状态的权限-->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
//在MainActivity中动态注册广播
//创建一个内部类ConnectivityBroadcastReceiver继承BroadcastReceiver
//动态注册广播,创建一个IntentFilter
//设置全局变量
private ConnectivityBroadcastReceiver mConnectivityBroadcastReceiver;
//onCreate方法中
IntentFilter filter = new IntentFilter();
filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
mConnectivityBroadcastReceiver = new ConnectivityBroadcastReceiver();
//注册
registerReceiver(mConnectivityBroadcastReceiver, filter);
/**
* 接受网络状态的改变
*/
public class ConnectivityBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (ConnectivityManager.CONNECTIVITY_ACTION.equals(intent.getAction())) {
//如果能走到这,说明网络已经发生变化
ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = manager.getActiveNetworkInfo();
if (activeNetworkInfo != null && activeNetworkInfo.isConnected()) {
if (ConnectivityManager.TYPE_WIFI == activeNetworkInfo.getType()) {
Toast.makeText(MainActivity.this, "当前是WIFI网络,请放心使用", Toast.LENGTH_SHORT).show();
} else if (ConnectivityManager.TYPE_MOBILE == activeNetworkInfo.getType()) {
Toast.makeText(MainActivity.this, "现在是移动网络,当心", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(MainActivity.this, "网络不可用,请检查网络", Toast.LENGTH_SHORT).show();
}
} else {
Toast.makeText(MainActivity.this, "网络不可用,请检查网络", Toast.LENGTH_SHORT).show();
}
}
}
}
//销毁广播
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(mConnectivityBroadcastReceiver);
}