Отключить все сетевые подключения

Ответить
Аватара пользователя
Elek
Сообщения: 55
Зарегистрирован: 29 май 2012, 09:57

Отключить все сетевые подключения

Сообщение Elek » 13 авг 2013, 21:55

Добрый день.
Пытаюсь сделать программную отключалку сетевых подключений.
Если активен только один тип подключения, WIFI или DATA, то все нормально отключается.
Если два, то андроид отключает только один из них, в моем случае это WIFI, так как он скорее всего имеет приимущество в плане очередности.

Проверяю подключение таким образом:

Код: Выделить всё

ConnectivityManager connectivityManager = (ConnectivityManager) ctx
				.getSystemService(Context.CONNECTIVITY_SERVICE);

	NetworkInfo activeNetwork = connectivityManager.getActiveNetworkInfo();
Проверяю активен ли WIFI:

Код: Выделить всё

boolean isWiFi = activeNetwork.getType() == ConnectivityManager.TYPE_WIFI;
И отменяю его:

Код: Выделить всё

WifiManager wifi = (WifiManager) ctx
						.getSystemService(Context.WIFI_SERVICE);
				wifi.setWifiEnabled(false);
Потом идет проверка мобильного инета :

Код: Выделить всё

boolean isMobile = activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE;
Так вот, есл вайфай был включен, то isMobile будет false. Я так понял, что изменения вступают в силу по истечению какого-то промежутка времени. Код выполняется в BroadcastReceiver.

Пытался обернуть функцию отключающую инет в Runnable и сделать Thread.sleep(5000); . Но тогда функция вообще не выполняется.

Посоветуйту пожалуйста, что с этим можно сделать и куда копать.
Спасибо.

Аватара пользователя
Elek
Сообщения: 55
Зарегистрирован: 29 май 2012, 09:57

Re: Отключить все сетевые подключения

Сообщение Elek » 13 авг 2013, 23:39

В общем сам спросил, сам нашел ответ :oops: .
После отключение вайфая выполняю:

Код: Выделить всё

try {
	      Thread.sleep(TEN_SECONDS);
	} catch (InterruptedException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
и еще раз получаю состояние сети:

activeNetwork = connectivityManager.getActiveNetworkInfo();
После этого проверяю включен ли мобильный инет и отключаю его.

Ответить