2011-12-26 131 views

回答

4

@Carlo:最简单的方法是首先ACCESS_NETWORK_STATE权限添加到您的应用程序清单文件,写这样的函数

public boolean isOnline() { 
    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo netInfo = cm.getActiveNetworkInfo(); 
    if (netInfo != null && netInfo.isConnectedOrConnecting()) { 
     return true; 
    } 
    return false; 
} 

如果返回值是true意味着互联网是工作还是假的手段显示警报箱:)

+0

确定THX非常 – Carlo 2011-12-26 10:00:46

+1

不错哒machan ... – 2011-12-26 10:02:21

+0

我该如何将此方法与正在运行的应用程序绑定在一起 我的意思是,如果在此过程中互联网突然消失,则调用此方法? – Carlo 2011-12-26 11:58:41

1

//这将检查WIFI,3G/EDGE和所有的网络可用性

public boolean networkStatus() { 
     boolean status = false; 
     int i = 0; 
     try { 
      String service = context.CONNECTIVITY_SERVICE; 
      ConnectivityManager connectivity = (ConnectivityManager) BackupSettings.this.context.getSystemService(service); 
      connectivity.setNetworkPreference(1); 
      NetworkInfo networkInfo[] = connectivity.getAllNetworkInfo(); 
      int cnt = networkInfo.length; 
      for (i = 0; i < cnt; i++) { 
       if (networkInfo[i].isConnected() == true) { 
        status = true; 
       } 
      } 
     } catch (Exception ee) { 
      Log.e(getClass().getSimpleName(), " Error at networkStatus() :=" + ee.toString()); 
     } 
     Log.e(getClass().getSimpleName(),"End of networkStatus() fun " + status); 
     return status; 
    } 
+0

你不觉得这将返回false如果netWorkInfo [0]连接和netWorkInfo [1]不是? – drulabs 2011-12-26 10:13:50

+0

怎么样? networkInfo [i] .isConnected()== true只改变状态,如果networkInfo [1] .isConnected()== false意味着它将如何改变状态? – 2011-12-26 10:18:20