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

Как я могу проверить, подключено ли устройство Android к Интернету?

Как узнать, подключено ли мое устройство к сети или нет? Как определить связь? Любой пример кода?

4b9b3361

Ответ 1

Во-первых, вам нужно разрешение знать, подключено ли устройство к сети или нет. Это должно быть в вашем манифесте в элементе <manifest>:

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

Затем вам нужно получить ссылку на ConnectivityManager:

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

Оттуда вам нужно получить объект NetworkInfo. Для большинства это будет означать использование ConnectivityManager. getActiveNetworkInfo():

NetworkInfo ni = cm.getActiveNetworkInfo();
if (ni == null) {
    // There are no active networks.
    return false;
}

Оттуда вам просто нужно использовать один из методов NetworkInfo, чтобы определить, подключено ли устройство к Интернету:

boolean isConnected = ni.isConnected();

Ответ 2

Во-первых, вам нужно разрешение знать, подключено ли устройство к сети или нет. Это должно быть в вашем манифесте, в элементе:

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

затем

ConnectivityManager connec = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);

if (connec != null && (
    (connec.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED) || 
    (connec.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED))) { 

        //You are connected, do something online.

} else if (connec != null && (
    (connec.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.DISCONNECTED) ||
    (connec.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.DISCONNECTED ))) {            

        //Not connected.    
        Toast.makeText(getApplicationContext(), "You must be connected to the internet", Toast.LENGTH_LONG).show();

} 

Ответ 3

Добавьте это разрешение в файл AppManifest.xml:

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

Метод проверки доступности сети или нет:

boolean isNetworkAvailable() {
  ConnectivityManager cm = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);

  NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
  boolean isConnected = activeNetwork != null && activeNetwork.isConnectedOrConnecting();
  return isConnected;
}

Источник