Android利用广播BroadCast监听网络的变化

  1. package com.app.test02;
  2. import android.content.BroadcastReceiver;
  3. import android.content.Context;
  4. import android.content.Intent;
  5. import android.net.ConnectivityManager;
  6. import android.net.NetworkInfo.State;
  7. import android.widget.Toast;
  8. /**
  9.  * Android  利用广播BroadCast监听网络的变化
  10.  * @author 402-9
  11.  */
  12. public class BroadCastDemo extends BroadcastReceiver{
  13.     State wifiState = null;
  14.     State mobileState = null;
  15.     @Override
  16.     public void onReceive(Context context, Intent intent) {
  17.         // TODO Auto-generated method stub
  18.         //获取手机的连接服务管理器,这里是连接管理器类
  19.         ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
  20.         wifiState = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
  21.         mobileState = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();
  22.         Intent intent2 = new Intent(context , BroadCastActivity2_SMS.class);
  23.         if (wifiState != null && mobileState != null && State.CONNECTED != wifiState && State.CONNECTED == mobileState) {
  24.             context.startService(intent2);
  25.             Toast.makeText(context, “手机网络连接成功!”, Toast.LENGTH_SHORT).show();
  26.         } else if (wifiState != null && mobileState != null && State.CONNECTED == wifiState && State.CONNECTED != mobileState) {
  27.             context.startService(intent2);
  28.             Toast.makeText(context, “无线网络连接成功!”, Toast.LENGTH_SHORT).show();
  29.         } else if (wifiState != null && mobileState != null && State.CONNECTED != wifiState && State.CONNECTED != mobileState) {
  30.             context.startService(intent2);
  31.             Toast.makeText(context, “手机没有任何网络…”, Toast.LENGTH_SHORT).show();
  32.         }
  33.     }
  34. }

增加权限

 

 

[html][/html] view plaincopy

  1. <receiver android:name=”.BroadCastDemo”>
  2.     <intent-filter >
  3.         <action android:name=”android.net.conn.CONNECTIVITY_CHANGE”/>
  4.     </intent-filter>
  5. </receiver>

 

[html][/html] view plaincopy

  1. <uses-permission android:name=”android.permission.ACCESS_NETWORK_STATE”/>

效果图

 

 

标签