A-A+

如何使用广播实时更新网络状态变化

2015年12月24日 站长资讯 暂无评论

如果你正在上网,网络突然断开,而路由器和交换机都还是正常工作(外网问题),我们要及时地提醒用户网络已断开,要实现此功能,我们可以接收网络状态改变这样一条广播,当由连接状态变为断开状态时,系统就会发送一条广播,我们接收到之后,再通过网络的状态做出相应的操作。

  1. public class NetworkStateReceiver extends BroadcastReceiver {    
  2.         
  3.     @Override    
  4.     public void onReceive(Context context, Intent intent) {    
  5.         if (!isNetworkAvailable(context)) {    
  6.            //网络不可用操作  
  7.         }  else{  
  8.             //网络可用操作  
  9.         }  
  10.     }   
  11.   
  12.     /**  
  13.      * 网络是否可用  
  14.      *   
  15.      */    
  16.     public static boolean isNetworkAvailable(Context context) {    
  17.         ConnectivityManager mgr = (ConnectivityManager)                   context.getSystemService(Context.CONNECTIVITY_SERVICE);    
  18.         NetworkInfo[] info = mgr.getAllNetworkInfo();    
  19.         if (info != null) {    
  20.             for (int i = 0; i < info.length; i++) {    
  21.                 if (info[i].getState() == NetworkInfo.State.CONNECTED) {    
  22.                     return true;   
  23.   
  24.   
  25.                 }    
  26.             }    
  27.         }    
  28.         return false;    
  29.     }    
  30.     
  31. }   

再注册一下这个接收者的信息:

  1. <receiver android:name=".NetworkStateReceiver">    
  2.     <intent-filter>    
  3.         <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>    
  4.         <category android:name="android.intent.category.DEFAULT" />    
  5.     </intent-filter>    
  6. </receiver>    

还要添加网络限权:

  1. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>   
标签:

给我留言