2016-06-11 1 views
0

Я хочу проверить подключение к Интернету. Я попытался сделать это, используя этот код, но он не работает. Я не получил никакого сообщения (Aucune связь Интернет)тест для подключения к Интернету в андроидном входе

private boolean isConnectingToInternet(Context applicationContext){ 
     ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo ni = cm.getActiveNetworkInfo(); 
     if (ni == null) { 
      // There are no active networks. 
      Toast.makeText(getApplicationContext(), "no internet", Toast.LENGTH_LONG).show(); 
      return false; 
     } else 
      return true; 

    } 

и

protected void onPostExecute(String s) { 
       super.onPostExecute(s); 
       loading.dismiss(); 
       if(isConnectingToInternet(getApplicationContext())) { 
       showEmployee(s); 
       }else{ 
        // show alert 
        Toast.makeText(MainActivity.this, "Aucune connexion internet", Toast.LENGTH_SHORT).show(); 
       } 
      } 

ответ

1

Вы Извлечение String s из Интернета и это почему вы используете AsyncTask? В этом случае вы должны проверить isConnectingToInternetдо, управляя AsyncTask, а не внутри него.

В любом случае, попробуйте это в вашем isConnectingToInternet:

private boolean isConnectingToInternet(Context applicationContext){ 
    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo ni = cm.getActiveNetworkInfo(); 
    return ni != null && ni.isConnectedOrConnecting(); 
} 
+0

Я получил эту ошибку, не могу разрешить символ activeNetworkInfo, поэтому я попытался использовать return ni! = Null && ni.isConnectedOrConnecting(); но нет сообщений также –

+0

Извините за этот промах, @LaraFab! Я исправил это. Можете ли вы сказать мне, почему вы вызываете 'isConnectingToInternet' внутри' onPostExecute', и каков параметр 'String s', который передается в' onPostExecute'? –

0

Вы находитесь на правильном треков, но не хватает 1 крошечную часть, проверяя isConnected вместе с != null, как это:

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

Эта функция работает для меня. Это отличается только тем, что у вас есть еще одно условие.