2011-12-26 2 views

ответ

4

@Carlo: Самый простой способ первый, чтобы добавить разрешения ACCESS_NETWORK_STATE в прикладном файл манифеста и написать функцию, как этого

public boolean isOnline() { 
    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo netInfo = cm.getActiveNetworkInfo(); 
    if (netInfo != null && netInfo.isConnectedOrConnecting()) { 
     return true; 
    } 
    return false; 
} 

если возвращаемое значение истинно означает, интернет работает или ложные средства показать предупреждение коробка :)

+0

нормально THx очень – Carlo

+1

хороший йа machan ... –

+0

Как я могу связать этот метод вместе с запущенным приложением Я имею в виду, что если во время процесса Интернет внезапно исчезнет, ​​этот метод будет вызван? – Carlo

1

// это будет проверить на Wi-Fi, 3G/EDGE и всей сети доступности

public boolean networkStatus() { 
     boolean status = false; 
     int i = 0; 
     try { 
      String service = context.CONNECTIVITY_SERVICE; 
      ConnectivityManager connectivity = (ConnectivityManager) BackupSettings.this.context.getSystemService(service); 
      connectivity.setNetworkPreference(1); 
      NetworkInfo networkInfo[] = connectivity.getAllNetworkInfo(); 
      int cnt = networkInfo.length; 
      for (i = 0; i < cnt; i++) { 
       if (networkInfo[i].isConnected() == true) { 
        status = true; 
       } 
      } 
     } catch (Exception ee) { 
      Log.e(getClass().getSimpleName(), " Error at networkStatus() :=" + ee.toString()); 
     } 
     Log.e(getClass().getSimpleName(),"End of networkStatus() fun " + status); 
     return status; 
    } 
+0

Вы не думаете, что это вернет false, если netWorkInfo [0] подключен, а netWorkInfo [1] не является ????? – drulabs

+0

как? networkInfo [i] .isConnected() == true только изменяет статус, если networkInfo [1] .isConnected() == false означает, как он изменит статус? –

Смежные вопросы