Подтвердить что ты не робот

Android - Как проверить доступ в Интернет, а не только подключение к Wi-Fi?

Я попробовал приведенный ниже код, чтобы проверить, подключен ли мой мобильный телефон к беспроводной сети, и он работает хорошо, когда я хочу знать, подключен ли мой мобильный телефон к сети, но он не может предоставить информацию об интернет-доступе... что-то вроде "Pinging" на любом сайте. Фактически я следил за многими ссылками, но ответа пока нет, поэтому я буду благодарен, если кто-нибудь может помочь.

Спасибо в Advance.

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Toast t = new Toast(getApplicationContext());

    if (isInternetOn()) {
         // INTERNET IS AVAILABLE, DO STUFF..
         Toast.makeText(ConnectivityTestActivity.this,"Network is Available", Toast.LENGTH_LONG).show();

         }
    else {
         // NO INTERNET AVAILABLE, DO STUFF..
        Toast.makeText(ConnectivityTestActivity.this,"No Network Available", Toast.LENGTH_LONG).show();

        }
}

public final boolean isInternetOn() {


    ConnectivityManager connec =  (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
    // ARE WE CONNECTED TO THE NET
    if ( connec.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTED ||
    connec.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTING ||
    connec.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTING ||
    connec.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTED ) {
    // MESSAGE TO SCREEN FOR TESTING (IF REQ)
    //Toast.makeText(this, connectionType + " connected", Toast.LENGTH_SHORT).show();
    return true;
    } else if ( connec.getNetworkInfo(0).getState() == NetworkInfo.State.DISCONNECTED ||  connec.getNetworkInfo(1).getState() == NetworkInfo.State.DISCONNECTED  ) {

    return false;
    }
    return false;
    }}

EDIT:

Следуйте ниже, ссылка содержит отличный ответ для сервера Google Ping и получить результат

qaru.site/info/13929/...

4b9b3361

Ответ 1

На самом деле я использовал ту же функцию isInternetOn(), но я удалил условие соединения. Он должен был проверить статус подключения, если он подключен или нет, и если он пытается подключиться. Это не сработало для меня, поэтому я удалил проверку статуса соединения, а затем сработал.

Спасибо за все ответы.

public final boolean isInternetOn()
{
  ConnectivityManager connec = (ConnectivityManager)
    getSystemService(Context.CONNECTIVITY_SERVICE);

  // ARE WE CONNECTED TO THE NET
  if ( connec.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTED ||
       connec.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTED )
  {
    // MESSAGE TO SCREEN FOR TESTING (IF REQ)
    //Toast.makeText(this, connectionType + " connected", Toast.LENGTH_SHORT).show();
    return true;
  }
  else if ( connec.getNetworkInfo(0).getState() == NetworkInfo.State.DISCONNECTED
    ||  connec.getNetworkInfo(1).getState() == NetworkInfo.State.DISCONNECTED  )
  {
    return false;
  }

  return false;
}

Ответ 2

см. образец:

public static boolean isWifiEnabled() {
    if ( !gWifiManager.isWifiEnabled()) {

        if (mCanShowWifiToast) {
            new Thread(mWifiToastControl).start();
            G.gHandler.post(mNoWifiRunnable);
        }

        return false;
    } else {
        int linkspeed = gWifiManager.getConnectionInfo().getLinkSpeed();
        if (linkspeed < 5) {
            if (mCanShowWifiToast) {
                new Thread(mWifiToastControl).start();
                G.gHandler.post(mNoWifiRunnable);
            }

            return false;
        }
    }

    return true;
}