2016-06-11 8 views
0

Ich möchte die Internetverbindung überprüfen. Ich habe versucht, dies mit diesem Code zu tun, aber es funktioniert nicht. Ich habe bekam keine Nachricht (Aucune connexion Internet)Test für Internet-Verbindung in Android Login

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; 

    } 

und

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(); 
       } 
      } 

Antwort

1

Sind Sie die String s aus dem Internet zu holen und das ist, warum Sie die AsyncTask verwenden? In diesem Fall sollten Sie überprüfen, isConnectingToInternetvor mit der AsyncTask, nicht in ihm.

Auf jeden Fall versuchen Sie dies in Ihrem isConnectingToInternet:

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

Ich habe diesen Fehler kann Symbol ActiveNetworkInfo nicht auflösen, so habe ich versucht, Rückgabe ni! = Null && ni.isConnectedOrConnecting(); aber es gibt auch keine Nachricht –

+0

Sorry für diesen Beleg, @LaraFab! Ich habe es korrigiert. Kannst du mir sagen, warum du "isConnectingToInternet" in 'onPostExecute' anrufst, und was ist der Parameter' String s', der an 'onPostExecute' übergeben wird? –

0

Du bist auf dem richtigen Weg, aber fehlt ein winziger Teil, isConnected zusammen mit != null wie diese Überprüfung:

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

Diese Funktion funktioniert für mich. Es ist nur in dieser einen zusätzlichen Bedingung von dir anders.

Verwandte Themen