Подключиться к указанной доступной сети Wi-Fi - PullRequest
2 голосов
/ 25 апреля 2011

Из моего приложения я могу включить / выключить WIFI на своем устройстве и сканировать доступные сети, но я не могу подключиться к указанной доступной сети.Это код, который я использую:

 if(wifi.getWifiState()==wifi.WIFI_STATE_DISABLED)
        { 
            wifi.setWifiEnabled(true);

        }
        if(wifi.startScan())
        {
            //ls=(ArrayAdapter<ScanResult>) wifi.getScanResults();
            ls=wifi.getScanResults();

            Log.e("",ls.get(0).toString());
            for(int i=0;i<ls.size();i++)
            {   Log.e("VALUE"," "+ls.get(i).toString());
                Log.e("",""+ls.get(i).SSID);
                if(ls.get(i).SSID.equalsIgnoreCase("SPECTRUM-GREEN"))
                {
                    Log.e("","SPectrum GREEN FOUND.....");

            try{ 
                String ssid="\""+ls.get(i).SSID+"\"";
                Log.e("SSId"," "+ssid);
                config.SSID=ssid;
            }catch(Exception e){Log.e("","Error : "+e.toString());}

            config.preSharedKey="\"password\"";
            config.status=WifiConfiguration.Status.ENABLED;

            config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40); 
            config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104);
            config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
            config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
            config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);

            config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
            config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
            config.allowedProtocols.set(WifiConfiguration.Protocol.RSN);

            int res=wifi.addNetwork(config);
                    Log.e("ENABLE ",""+wifi.enableNetwork(res, false));

                    break;
                }
            }

Ответы [ 3 ]

1 голос
/ 16 января 2014

Хотя это старый вопрос, в случае, если кто-то сталкивался с этим, мне помогло следующее:

void connect (String ssidName) {
    boolean result = false;
    List<WifiConfiguration> arraylist = wifiManager.getConfiguredNetworks();
    for (WifiConfiguration wifiConfiguration : arraylist) {
        String wifiConfigSSID = wifiConfiguration.SSID.replace("\"", "");
        if (wifiConfigSSID.equals(ssidName)) {
            result = wifiManager.enableNetwork(wifiConfiguration.networkId, true);
            break;
        }
    }
}

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

0 голосов
/ 03 октября 2012

Вы должны отключить другие сети:

wifi.enableNetwork(res, true);
0 голосов
/ 25 апреля 2011

Просто комментарий. Вы пытаетесь подключиться ad hoc? Это невозможно с "нормальными" телефонами Android, которые я читал ...

...