2013-04-16 96 views
1

我正在開發一個應用程序。情景是:我的Android設備顯示連接到互聯網,但設備沒有互聯網接入。在我的應用程序中,我使用此代碼來檢查互聯網連接:Android互聯網連接代碼

private boolean isNetworkAvailable() { 
    ConnectivityManager connectivityManager 
      = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); 
    return activeNetworkInfo != null && activeNetworkInfo.isConnected(); 
} 


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

但是每當它在上面解釋的場景中崩潰。任何幫助,將不勝感激。

感謝

+0

,從哪裏崩潰? – Elmi

+0

你得到了什麼錯誤?發佈你的logcat .. – AndiM

回答

0

試試這個代碼

public boolean isConnected(){ 
     ConnectivityManager connectivity = (ConnectivityManager) _context.getSystemService(Context.CONNECTIVITY_SERVICE); 
      if (connectivity != null) 
      { 
       NetworkInfo[] info = connectivity.getAllNetworkInfo(); 
       if (info != null) 
        for (int i = 0; i < info.length; i++) 
         if (info[i].getState() == NetworkInfo.State.CONNECTED) 
         { 
          return true; 
         } 

      } 
      return false; 
    } 
+0

感謝所有的幫助。請檢查我遇到這個錯誤時的logcat值。這個錯誤發生時,我的設備顯示互聯網連接,但沒有互聯網接入..請檢查這個loagcat-http://img41.imageshack.us/img41/3788/screenshots201304152343.png – Ullas

+0

你的logcat值在哪裏? – Abx

4

我寫了這個方法來處理這個

public boolean isOnline(Context con) { 
     try { 
      connectivityManager = (ConnectivityManager) con 
         .getSystemService(Context.CONNECTIVITY_SERVICE); 

     NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo(); 
     connected = networkInfo != null && networkInfo.isAvailable() && 
       networkInfo.isConnected(); 
     return connected; 


     } catch (Exception e) { 
      System.out.println("CheckConnectivity Exception: " + e.getMessage()); 
      Log.v("connectivity", e.toString()); 
     } 
     return connected; 
    } 

,並添加這些權限清單文件

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
0

使用本

公共靜態布爾isInternetOn(上下文的背景下){

ConnectivityManager cm = (ConnectivityManager) context 
      .getSystemService(Context.CONNECTIVITY_SERVICE); 
    // test for connection 
    if (cm.getActiveNetworkInfo() != null 
      && cm.getActiveNetworkInfo().isAvailable() 
      && cm.getActiveNetworkInfo().isConnected()) { 
     Log.v(TAG, "Internet is working"); 
     // txt_status.setText("Internet is working"); 
     return true; 
    } else { 
     // txt_status.setText("Internet Connection Not Present"); 
     Log.v(TAG, "Internet Connection Not Present"); 
     return false; 
    } 
} 
0

檢查:

private boolean isNetworkAvailable() 
{ 
    ConnectivityManager conMan = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
    State mobile = conMan.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState(); 
    State wifi = conMan.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState(); 

    if (wifi == NetworkInfo.State.CONNECTED || wifi == NetworkInfo.State.CONNECTING) 
    {    
     // Wifi connected  
    } 
    else if(mobile == NetworkInfo.State.CONNECTED || mobile == NetworkInfo.State.CONNECTING) 
    { 
     // Mobile network connected 
    } 
}