2012-04-23 5 views
0

проверить соединение сПроверка подключения к Интернету

ConnectivityManager connec = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
android.net.NetworkInfo wifi = connec.getNetworkInfo(ConnectivityManager.TYPE_WIFI); 
android.net.NetworkInfo mobile = connec.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); 

я есть Wi-Fi, и я получаю неправильный статус на мой мобильный телефон, что я мог сделать?

+0

Какой у вас статус? – MByD

+0

(wifi.isConnected()) дал вам ложь? –

ответ

1

, пожалуйста, используйте следующий стандартный метод проверки погоды подключение к Интернету подключен или нет .....

public static final boolean isNetworkConnected(Context context) { 
     if (context != null) { 
      ConnectivityManager mgr = (ConnectivityManager) context 
        .getSystemService(Context.CONNECTIVITY_SERVICE); 

      if (mgr != null) { 
       boolean mobileNetwork = false; 
       boolean wifiNetwork = false; 

       NetworkInfo mobileInfo = mgr 
         .getNetworkInfo(ConnectivityManager.TYPE_MOBILE); 
       NetworkInfo wifiInfo = mgr 
         .getNetworkInfo(ConnectivityManager.TYPE_WIFI); 

       if (mobileInfo != null) 
        mobileNetwork = mobileInfo.isConnected(); 
       if (wifiInfo != null) 
        wifiNetwork = wifiInfo.isConnected(); 

       return (mobileNetwork || wifiNetwork); 
      } 
     } 
     return false; 
    } 
1

Вы дали необходимые разрешения, указанные ниже в файле манифеста ...

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
1

Вы можете попробовать этот код, а также для интернет-соединения Wi-Fi и Cell.

private boolean haveNetworkConnection() { 
    boolean haveConnectedWifi = false; 
    boolean haveConnectedMobile = false; 

ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
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; 
} 

Или вы можете использовать следующий метод

public boolean isNetworkAvailable() { 
ConnectivityManager cm = (ConnectivityManager) 
    getSystemService(Context.CONNECTIVITY_SERVICE); 
NetworkInfo networkInfo = cm.getActiveNetworkInfo(); 
// if no network is available networkInfo will be null 
// otherwise check if we are connected 
if (networkInfo != null && networkInfo.isConnected()) { 
    return true; 
} 
return false; 
} 

Это требует разрешения ACCESS_NETWORK_STATE.