Android проверяет, есть ли в телефоне проблемы с мобильным или беспроводным соединением - PullRequest
2 голосов
/ 01 апреля 2012

У меня есть следующий метод, чтобы проверить, имеет ли мое устройство мобильное или Wi-Fi соединение:

public static boolean haveNetworkConnection(ConnectivityManager cm) {
    boolean haveConnectedWifi = false;
    boolean haveConnectedMobile = false;

    NetworkInfo[] netInfo = cm.getAllNetworkInfo();
    for (NetworkInfo ni : netInfo) {
        if (ni.getTypeName().equalsIgnoreCase("WIFI"))
            if (ni.isConnected())
                haveConnectedWifi = true;
        if (ni.getTypeName().equalsIgnoreCase("MOBILE"))
            if (ni.isConnected())
                haveConnectedMobile = true;
    }
    return haveConnectedWifi || haveConnectedMobile;
}

Код работает нормально (возвращает true), когда телефон подключен к Wi-Fi, однако, когда телефон не подключен, метод все равно возвращает true.

Я проверил, чтобы телефон был полностью отключен, поскольку ни одно из моих других приложений не может подключиться к Интернету.

Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

1 голос
/ 01 апреля 2012

Я думаю, вы хотите использовать ConnectivityManager примерно так:

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

NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
boolean isConnected = activeNetwork.isConnectedOrConnecting();
boolean isWiFi = activeNetwork.getType() == ConnectivityManager.TYPE_WIFI;

Узнайте больше об этом на http://developer.android.com/training/monitoring-device-state/connectivity-monitoring.html

0 голосов
/ 01 апреля 2012
private static boolean checkInternetConnection(Activity _activity) {
ConnectivityManager conMgr = (ConnectivityManager) _activity.getSystemService(Context.CONNECTIVITY_SERVICE);
if (conMgr.getActiveNetworkInfo() != null &&  conMgr.getActiveNetworkInfo().isAvailable()
    && conMgr.getActiveNetworkInfo().isConnected()) 
return true;
else
return false;
}

Приведенный выше метод возвращает значение true, если у вас есть доступная / подключенная сеть

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