2013-03-11 2 views
0

Я столкнулся с ситуацией, исправляющей интернет в моем приложении для Android. Я проверяю доступность Интернета в своем приложении. Но я хочу также проверить правильность подключения. Прямо сейчас, если мой интернет подключен, но сигнал не получается.Проверка наличия подходящего интернета или нет

ConnectivityManager connectivityManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); 
if(connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED || connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED){ 
    //do what ever 
} 
else{ 
    Toast.makeText(getApplicationContext(), "Please activate the internet", Toast.LENGTH_SHORT).show(); 
} 

если сигнал был утерян, то он не показывает internet is not available. Поэтому мне нужен код для проверки сигнала в каждый раз.

ответ

1

попробовать это,

public final boolean isInternetON(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.isAvailable()) 
       haveConnectedWifi = true; 
     if (ni.getTypeName().equalsIgnoreCase("MOBILE")) 
      if (ni.isAvailable()) 
       haveConnectedMobile = true; 

    } 
    return haveConnectedWifi || haveConnectedMobile; 

} 
+0

Его ситуация отличается Мурали. Например, иногда вы можете подключиться к Wi-Fi, но dsl (или сетевой кабель Wi-Fi маршрутизатора) отключен. –

+0

@MayuMayooresan возвращает ложное значение. на основе этого логического значения легко идентифицировать сеть не было связано – MuraliGanesan

+0

+1 прямо сейчас. Я проверю его, как только вернусь домой. –

Смежные вопросы