2012-07-11 51 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; 
     } 
    }; 

然後做一些與此新發現的知識:)