Как я могу проверить, подключено ли устройство Android к сети? - PullRequest
25 голосов
/ 07 мая 2010

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

Ответы [ 4 ]

54 голосов
/ 07 мая 2010

Во-первых, вам нужно разрешение, чтобы узнать, подключено ли устройство к сети или нет. Это должно быть в вашем манифесте, в элементе <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();
6 голосов
/ 07 мая 2010

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

<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();

} 
4 голосов
/ 24 апреля 2015

Добавьте это разрешение в свой файл 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;
}

Источник

0 голосов
/ 07 мая 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...