2016-05-11 14 views
0
public boolean isConnected(Context context) { 
    connected=false; 
    ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 
    if (connectivity != null) { 
     NetworkInfo info = connectivity.getActiveNetworkInfo(); 
     if (info != null && info.getState() == NetworkInfo.State.CONNECTED && info.isConnected()) { 
      Log.e("link",new Gson().toJson(info.getDetailedState())); 
      connected=true; 
      Needle.onBackgroundThread().execute(new Runnable() { 
       @Override 
       public void run() { 

        try { 
         HttpURLConnection urlc = (HttpURLConnection) (new URL(mainDomain).openConnection()); 
         urlc.setRequestProperty("User-Agent", "Test"); 
         urlc.setRequestProperty("Connection", "close"); 
         urlc.setConnectTimeout(1500); 
         urlc.connect(); 
         connected=true; 
         Log.e("connection",new Gson().toJson(urlc.getResponseCode())); 

        } catch (IOException e) { 
         e.printStackTrace(); 
         connected=false; 
        } 
       } 
      }); 
      return connected; 
     } 
    } 

    return connected; 
} 

Ich habe diesen Code verwendet. es funktioniert gut, aber mein Problem ist, dass ich dort Server aufrufen muss. Gibt es eine andere Möglichkeit, die Geschwindigkeit oder das Funktionieren von WiFi zu überprüfen?Wie funktioniert funktionierendes WLAN zu überprüfen oder nicht?

WifiManager wifiManager=(WifiManager)this.getSystemService(WIFI_SERVICE); 
WifiInfo wifiInfo = wifiManager.getConnectionInfo(); 
int speedMbps = wifiInfo.getLinkSpeed(); 

Ich habe oben genannten Code verwendet, um die Geschwindigkeit zu überprüfen, aber es funktioniert auch nicht gut.

Bitte helfen Sie mir. Vielen Dank im Voraus

Antwort

2

können Sie versuchen, diese

public static boolean checkInternetConnection(Context context) 
{ 
    try 
    { 
     ConnectivityManager connec = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 
     android.net.NetworkInfo wifi = connec.getNetworkInfo(ConnectivityManager.TYPE_WIFI); 
     android.net.NetworkInfo mobile = connec.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); 

     if ((wifi != null && wifi.isConnected()) 
       || (mobile != null && mobile.isConnected())) 
     { 
      return true; 
     } 
     log("Connection", "Connection failed"); 
     return false; 
    } 
    catch (Exception e) 
    { 
     // TODO: handle exception 
     e.printStackTrace(); 
     return false; 
    } 
} 
0

Sie können den folgenden Code verwenden:

ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); 
return activeNetworkInfo != null && activeNetworkInfo.isConnected(); 

Dies wird Sie wissen lassen, wenn das Gerät angeschlossen ist oder nicht.