2013-09-01 3 views
0

Когда я использую приведенный ниже код для отображения состояния подключения, условие «если» всегда возвращает «true», если только я не установил «netinfo» равным «null».Возвращаемое значение в ConnectivityManager и/или NetworkInfo в ADT - Android

Где проблема?

public boolean isConnectedToInternet() 
{ 
    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo netInfo = cm.getActiveNetworkInfo(); 
    if (netInfo.isConnectedOrConnecting()) 
     { 
      Toast.makeText(this, "On",Toast.LENGTH_LONG).show(); 
      Log.i("NewsList", "Internet Connection found."); 
      return true; 
     } 

    Toast.makeText(this, "Off",Toast.LENGTH_LONG).show(); 
    return false; 
} 
+0

Проверить это http://stackoverflow.com/вопросы/18525924/Android-аск -user-to-both-enable-wifi-or-quit-app/18526358 # 18526358 – Ritaban

ответ

1

Попробуйте следующее:

DetectConnection.class:

public class DetectConnection { 
    /* 
    * Checking internet connection 
    */ 
    public static boolean checkInternetConnection(Context context) { 

     ConnectivityManager con_manager = (ConnectivityManager) context 
       .getSystemService(Context.CONNECTIVITY_SERVICE); 

     if (con_manager.getActiveNetworkInfo() != null 
       && con_manager.getActiveNetworkInfo().isAvailable() 
       && con_manager.getActiveNetworkInfo().isConnected()) { 
      return true; 
     } else { 
      return false; 
     } 
    } 
} 

Проверьте Интернет от другой деятельности:

if (DetectConnection.checkInternetConnection(this)) { 
     //do something 
} 
+0

thanx, но он возвращает "true" – spm