2012-07-11 52 views
1

我检查,如果手机有Internetconnection与此代码:检查永久在线状态

online = SystemCheckInternetConn.getInstance(this).isOnline(this); 

我怎么能连续检查,如果手机具有连接或没有?

+1

你是什么意思“检查永久如果手机有一个连接或不呢?” – FoamyGuy 2012-07-11 02:08:14

回答

1

您需要注册一个broadcastreceiver来监听连接的变化。尝试是这样的:

registerReceiver(MyNetworkStateReceiver, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION)); 

private BroadcastReceiver NetworkStateReceiver = new BroadcastReceiver(){ 

     @Override 
     public void onReceive(Context context, Intent intent) { 
      boolean haveConnection = haveNetworkConnection(context); 
     } 

     private boolean haveNetworkConnection(Context context) { 
      boolean haveConnectedWifi = false; 
      boolean haveConnectedMobile = false; 

      ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 
      NetworkInfo[] netInfo = cm.getAllNetworkInfo(); 
      for (NetworkInfo ni : netInfo) { 
       if (ni.getTypeName().equalsIgnoreCase("WIFI")) 
        if (ni.isConnected()) 
         haveConnectedWifi = true; 
       if (ni.getTypeName().equalsIgnoreCase("MOBILE")) 
        if (ni.isConnected()) 
         haveConnectedMobile = true; 
      } 
      return haveConnectedWifi || haveConnectedMobile; 
     } 
    }; 

然后做一些与此新发现的知识:)