Как проверить наличие определенного типа сети в Android? - PullRequest
1 голос
/ 07 января 2012

Я написал приложение для Android, которое требует передачи большого количества данных через сеть. Чтобы сохранить низкие счета-фактуры, я добавил в свою конфигурацию переключатель, который должен переключать приложение в режим «wlan only».

К сожалению, мне не удалось реализовать правильную проверку соединения WLAN в моем приложении, основная идея заключалась в добавлении необходимых разрешений через

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

в моем манифесте (которого должно хватить для этой цели) и реализовал простой метод, к которому обращаются в моей деятельности:

protected boolean checkForNetwork(Context context, boolean wlanOnly) {
    // check via ACCESS_NETWORK_STATE
    ConnectivityManager manager = (ConnectivityManager) context.
            getSystemService(Context.CONNECTIVITY_SERVICE);
    if (!wlanOnly) {
        return manager.getActiveNetworkInfo().isConnected();
    } else {
        // hmm... 
    }
}

Я совершенно не уверен, что входит в // хмм ... часть.

Ответы [ 2 ]

4 голосов
/ 07 января 2012

Попробуйте это:

NetworkInfo info = manager.getActiveNetworkInfo();
if (info.getType() == ConnectivityManager.TYPE_WIFI) {
    return info.isConnected();
}
1 голос
/ 07 января 2012

Состояние wifi = conMan.getNetworkInfo (ConnectivityManager.TYPE_WIFI) .getState ();

Вы можете посмотреть здесь; -)

http://developer.android.com/reference/android/net/wifi/WifiManager.html

открытый статический класс WifiConfiguration.Status int CURRENT это сеть, к которой мы сейчас подключены

...