MainActivity.java
private BroadcastReceiver receiver;
protected void onCreate(Bundle savedInstanceState){
、
//创建这个方法,开启广播
registerBroadrecevicer();
、
、
}
private void registerBroadrecevicer() {
//获取广播对象
receiver = new IntenterBoradCastReceiver();
//创建意图过滤器
IntentFilter filter=new IntentFilter();
//添加动作,监听网络
filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
registerReceiver(receiver, filter);
}
//监听网络状态变化的广播接收器
public class IntenterBoradCastReceiver extends BroadcastReceiver{
private ConnectivityManager mConnectivityManager;
private NetworkInfo netInfo;
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
String action = intent.getAction();
if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
mConnectivityManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
netInfo = mConnectivityManager.getActiveNetworkInfo();
if(netInfo != null && netInfo.isAvailable()) {
/////////////网络连接
String name = netInfo.getTypeName();
if(netInfo.getType()==ConnectivityManager.TYPE_WIFI){
/////WiFi网络
}else if(netInfo.getType()==ConnectivityManager.TYPE_ETHERNET){
/////有线网络
}else if(netInfo.getType()==ConnectivityManager.TYPE_MOBILE){
/////////3g网络
}
} else {
////////网络断开
Toast.makeText(FirstActivity.this, "无网络", 0).show();
}
}
}
}
解除广播
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
if(receiver!=null){
unregisterReceiver(receiver);
receiver=null;
}
}
AndroidManifest.xml
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET" />