2012-03-31 5 views
2

Ich habe die folgende Methode zu überprüfen, ob das Gerät entweder mobil oder WiFi-Verbindung hat:Android überprüfen, ob Telefon verfügt über mobile oder drahtlose Verbindung Ausgabe

public static boolean haveNetworkConnection(ConnectivityManager cm) { 
    boolean haveConnectedWifi = false; 
    boolean haveConnectedMobile = false; 

    NetworkInfo[] netInfo = cm.getAllNetworkInfo(); 
    for (NetworkInfo ni : netInfo) { 
     if (ni.getTypeName().equalsIgnoreCase("WIFI")) 
      if (ni.isConnected()) 
       haveConnectedWifi = true; 
     if (ni.getTypeName().equalsIgnoreCase("MOBILE")) 
      if (ni.isConnected()) 
       haveConnectedMobile = true; 
    } 
    return haveConnectedWifi || haveConnectedMobile; 
} 

Der Code scheint zu funktionieren (liefert true), wenn die Das Telefon ist mit dem WLAN verbunden. Wenn das Telefon jedoch nicht verbunden ist, wird die Methode trotzdem als wahr zurückgegeben.

Ich habe getestet, um sicherzustellen, dass das Telefon vollständig getrennt ist, da keine meiner anderen Apps eine Verbindung zum Internet herstellen kann.

Jede Hilfe wird sehr geschätzt.

Antwort

1

Ich denke, die Sie verwenden möchten die ConnectivityManager wie so:

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

NetworkInfo activeNetwork = cm.getActiveNetworkInfo(); 
boolean isConnected = activeNetwork.isConnectedOrConnecting(); 
boolean isWiFi = activeNetwork.getType() == ConnectivityManager.TYPE_WIFI; 

mehr darüber lesen bei http://developer.android.com/training/monitoring-device-state/connectivity-monitoring.html

0
private static boolean checkInternetConnection(Activity _activity) { 
ConnectivityManager conMgr = (ConnectivityManager) _activity.getSystemService(Context.CONNECTIVITY_SERVICE); 
if (conMgr.getActiveNetworkInfo() != null && conMgr.getActiveNetworkInfo().isAvailable() 
    && conMgr.getActiveNetworkInfo().isConnected()) 
return true; 
else 
return false; 
} 

Das obige Verfahren retrun wahr, wenn Sie alle verfügbaren/verknüpften Netzwerk