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

Я использую следующий код, чтобы создать новую точку доступа 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 для этого?

Спасибо.


person User7723337    schedule 18.03.2012    source источник
comment
это WifiManager.saveConfiguration(), который сохраняет текущую созданную конфигурацию Wi-Fi.   -  person User7723337    schedule 18.03.2012


Ответы (3)


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

person User7723337    schedule 27.03.2012
comment
WifiManager.saveConfiguration() устарел - person Volodymyr Kulyk; 10.10.2017

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

person Pavandroid    schedule 18.03.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);
person alejandrocordon    schedule 20.03.2012