Вопрос в следующем
есть несколько одновременно доступных 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), то просто все соединения становятся запрещенными и ни к чему не присоединяется устройство
может есть другие варианты?