Настройка Wi-Fi программно с использованием WPA Security в планшете Android - PullRequest
1 голос
/ 06 декабря 2011

Я пытаюсь настроить WiFi программно на планшете Android.Если WiFi-соединение отсутствует, добавьте сеть с SSID и паролем для чтения из текстового файла.Добавление этой сети в список сетей и сохранение пароля.Он добавляет сеть и сохраняет пароль, но когда я пытаюсь подключиться, он не подключается.дай мне знать ...

public static void setupWifi(Context _context)
{
     if(deviceConfig.wireless_ssid.length()==0) return;

     WifiManager wifi = (WifiManager)_context.getSystemService(_context.WIFI_SERVICE);
     WifiConfiguration wc = new WifiConfiguration(); 
     wc.SSID = "\"" + deviceConfig.wireless_ssid + "\""; //IMP! This should be in Quotes!!
     wc.hiddenSSID = true;
     wc.status = WifiConfiguration.Status.ENABLED;     
     wc.priority = 40;
     wc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
     wc.allowedProtocols.set(WifiConfiguration.Protocol.WPA);

     wc.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);

     wc.preSharedKey = "\"" + deviceConfig.wireless_passkey + "\"";// 

     Log.d("ssid : ", wc.SSID );

     List<WifiConfiguration> netWorkList =  wifi.getConfiguredNetworks();
     WifiConfiguration wifiCong = null;

     if (netWorkList != null) {
         for(WifiConfiguration item:netWorkList) {
             if (item.SSID.equalsIgnoreCase("\"" + deviceConfig.wireless_ssid + "\"")) {
                 wifiCong = item;
             }
         }
     }

     if (wifiCong == null) {
         boolean res1 = wifi.setWifiEnabled(true);
         int res = wifi.addNetwork(wc);
         Log.d("WifiPreference", "add Network returned " + res );
         boolean b = wifi.enableNetwork(res, true);   
         Log.d("WifiPreference", "enableNetwork returned " + b );  
         boolean es = wifi.saveConfiguration();
         Log.d("WifiPreference", "saveConfiguration returned " + es );
     }
 }

Спасибо, Киран

1 Ответ

3 голосов
/ 06 декабря 2011

У меня тоже была эта проблема. Я решил это вручную, добавив в устройство сеть Wi-Fi. Затем я перечислил конфигурацию и скопировал значения, добавленные устройством для успешного подключения к этой сети.

Для уточнения:

Добавьте сеть вручную, позвоните сетевому менеджеру, чтобы получить настроенные сети, найдите свою сеть, а затем вызовите получателей из всего, что вы пытаетесь настроить - вы найдете точную конфигурацию, которая вам нужна.

void getWifiConfigs()
{ 
    WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); 
    List<WifiConfiguration> networks = wifi.getConfiguredNetworks();
    for (WifiConfiguration current : networks){
        //check getters here
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...