Как запомнить конфигурацию Wi-Fi и подключенную сеть через перезагрузки - PullRequest
5 голосов
/ 18 марта 2012

Я использую следующий код для создания новой точки доступа Wi-Fi и подключения к ней.
Этот код работает нормально, и я могу подключиться к точке доступа Wi-Fi, но проблема, с которой я сталкиваюсь, это соединение Wi-Fiто, что я создаю, не запоминается при перезагрузках устройства.

WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiConfiguration wc = new WifiConfiguration();
wc.SSID = "\"SSIDName\"";
wc.preSharedKey  = "\"password\"";
wc.hiddenSSID = true;
wc.status = WifiConfiguration.Status.ENABLED;        
wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
wc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
wc.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
int res = wifi.addNetwork(wc);
Log.d("WifiPreference", "add Network returned " + res );
boolean b = wifi.enableNetwork(res, true);        
Log.d("WifiPreference", "enableNetwork returned " + b );

Что я хочу заархивировать, так это то, что при успешном подключении к SSID я хочу запомнить эту сеть и при следующей перезагрузке устройстваAndroid должен автоматически подключиться к тому SSID, который был ранее подключен.

Это какой-либо API в WifiManager или WifiConfiguration для этого?

Спасибо.

Ответы [ 3 ]

2 голосов
/ 27 марта 2012

Мы должны сохранить созданную конфигурацию Wi-Fi с помощью вызова WifiManager.saveConfiguration(), который сохраняет текущую созданную конфигурацию Wi-Fi, а также нам нужно установить наивысший приоритет для созданной конфигурации Wi-Fi, чтобы при следующей перезагрузке менеджер Android Wi-Fi отдает предпочтениеэта сеть.

0 голосов
/ 20 марта 2012

Попробуйте этот код для WPA:

        WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
        WifiConfiguration wc = new WifiConfiguration(); 
        wc.SSID = "\""+SSIDname+"\""; //IMP! This should be in Quotes!!
        wc.hiddenSSID = false;
        wc.status = WifiConfiguration.Status.DISABLED;     
        wc.priority = 1;
        wc.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
        wc.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
        wc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
        wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
        wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
        wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);
        wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104);
        wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
        wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
        wc.preSharedKey = "\"".concat(password).concat("\"");
        int res = wifi.addNetwork(wc);
0 голосов
/ 18 марта 2012

Написать широковещательный приемник для каждого времени загрузки установить имя пользователя и парольВ этот момент не пишите никаких интерфейсов.

...