Страница 1 из 1

подключение к конкретной Wifi сети

Добавлено: 14 окт 2014, 11:19
Rustam
Здравствуйте!
Вопрос в следующем
есть несколько одновременно доступных wifi сетей
как подключиться к конкретной
поискав откопал такой вариант
http://stackoverflow.com/questions/8818 ... mmatically

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

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



    				@Override
    				public void onItemClick(AdapterView<?> parent, View view,
    						int position, long id) {
    					//здесь хранится имя сети
    					connectStatus=CONNECT_ERR_CONNECTING;
    					String SSID=parent.getAdapter().getItem(position).toString();
    					//получаем список всеъ сетей
    					List<WifiConfiguration> list=wifiManager.getConfiguredNetworks();
    					//и по всем сетям делаем поиск нашей сети
    					for( WifiConfiguration i : list ) {
    						if(i.SSID.equals("\"" + SSID + "\"")) {//нашли соответствие
    							//и присоединяемся
    							boolean flag=true;//флаг для проверки создаиня вайфай
    					        if(wifiManager.disconnect()){//отсоединяемся от текущей сети
    					        	if(wifiManager.enableNetwork(i.networkId, false)){//делаем активной ту которую выбрали
    					        		if(wifiManager.reconnect()){//присоединяемся к ней
    		     							updateData=true;
    		     							commonView.showNext();
    		     							//выводим сообщение, что все норм
    		     							toastMess.setText("Wifi is OK");
    		    					        toastMess.show();
    		    					        break;
    		    					        
    					        		}else{
    					        			flag=false;//если что не так то сообщаем об ошибке
    					        		}
    					        	}else{
    					        		flag=false;//если что не так то сообщаем об ошибке
    					        	}
    					        }else{
    					        	flag=false;//если что не так то сообщаем об ошибке
    					        }
    					        if(!flag){//если чтото было не так - пишем, что к выбираемой сети нельзя присоединиться
    					        	toastMess.setText("Can`t connect to "+SSID);
	    					        toastMess.show();
    					        }
    					    }           
    					 }
    					
    					wifiPopupWindow.dismiss();//закрываем окно
    				}
    			

вопрос такой
работает такой код весьма своеобразно:
если указать так wifiManager.enableNetwork(i.networkId, false), То текущее wifi соединение сбрасывается и устройство присоединяется к первому попавшемуся доступному соединению
если указать wifiManager.enableNetwork(i.networkId, true), то просто все соединения становятся запрещенными и ни к чему не присоединяется устройство

может есть другие варианты?