2011-05-15 160 views
1

我正在使用此代碼來檢查android應用程序的網絡可用性。如果沒有互聯網,android應用程序崩潰

public boolean isOnline(Context ctx) { 
     ConnectivityManager conMgr = (ConnectivityManager)ctx.getSystemService(Context.CONNECTIVITY_SERVICE); 

     NetworkInfo i = conMgr.getActiveNetworkInfo(); 
      if (i == null) 
      return false; 
      if (!i.isConnected()) 
      return false; 
      if (!i.isAvailable()) 
      return false; 
      return true; 
    } 

但如果上午連接到WiFi網絡,但沒有互聯網是網絡中訪問的話,我將如何檢查網絡不可用,其實我的應用程序崩潰,我想顯示警告框,而不是崩潰的應用!

有人知道如何檢查網絡可用性嗎?

這是錯誤日誌:

http://licrp.dnsalias.net:8000/iteam/images/error.jpg

+0

什麼是您的日誌中的錯誤? – dmon 2011-05-15 13:11:57

+0

請認真閱讀錯誤日誌!它是由於位置監聽器類 – 2011-05-15 13:30:33

+0

而發生的,我只是擔心如果沒有訪問Internet,我的應用程序將崩潰! :(我需要這個解決方案! – 2011-05-15 13:31:16

回答

0

如果你只是想以確保您連接到WiFi和有互聯網連接,你可以只Ping一個已知ADRESS,例如谷歌通常是在線:)

URL url = new URL("http://www.google.com"); 
HttpURLConnection conn= (HttpURLConnection) url.openConnection(); 
int responseCode = conn.getResponseCode(); 
//if responseCode = 200 - THEn CONN is connected 
相關問題