Q: Статический метод для проверки наличия интернет соединения public boolean isOnline() {
            ConnectivityManager cm = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo nInfo = cm.getActiveNetworkInfo();
            if (nInfo != null && nInfo.isConnected()) {
                return true; // есть соединение
            }
            else {
                return false; // нет соединения
            }

      }

Представленный выше метод нельзя объявить как статический, так как в getSystemService имеется не статический контекст.
И еще метод возвращает Истину даже , если вайвай подключен , но интернета нет или если  передача данных включена, но интернет не оплачен. Есть ли другой готовый метод ?  Можно попытаться самому проверить пинг к гуглу например и если нет, то сделать вывод что интернет отключен, но тут может и временный сбой помешать. 

A: Перевод этого ответа — enSO:

Метод проверяет, подключено ли устрой к интернету и возвращает true, если подключено.
private boolean isNetworkConnected() {
  ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
  return cm.getActiveNetworkInfo() != null;
 }

В манифесте должны быть эти разрешения:
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

А этот метод проверяет фактический доступ к сети (можно ли зайти на сайт, например):
public boolean isInternetAvailable() {
        try {
            //You can replace it with your name
            InetAddress ipAddr = InetAddress.getByName("google.com");
            return !ipAddr.equals("");
        } catch (Exception e) {
            return false;
        }
    }

