Установить сохраненные настройки сети - PullRequest
1 голос
/ 06 февраля 2020

В моем приложении Android я делал следующие шаги:

1) Включите Wi-Fi, если он выключен;
2) Подключитесь к указанному c Wi-Fi, если он найдено;
3) Сделайте что-нибудь в новой сети Wi-Fi;
4) Вернитесь в состояние сети, которое было до первого шага;

Как сохранить состояние сети и заново настроить его?

1 Ответ

1 голос
/ 06 февраля 2020

добавить это в манифест <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses- permission> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses- permission>

проверить, включен и выключен wifi boolean wifiEnabled = wifiManager.isWifiEnabled()

включить и отключить wifi

WifiManager wifiManager = (WifiManager) 
this.getApplicationContext().getSystemService(Context.WIFI_SERVICE); 
wifiManager.setWifiEnabled(true);
wifiManager.setWifiEnabled(false);

сохранить новый wifi

  WifiConfiguration conf = new WifiConfiguration();
    String ssid = "GGP";
    String password = "%5EyS0X-n$2c9";
    conf.SSID = "\"" + ssid + "\"";   // Please note the quotes. String should contain SSID in quotes
    conf.preSharedKey = "\"" + password + "\"";
    String security = "WPA2 Personal";


            //WPA2 Encryption
            if (security.equalsIgnoreCase("WPA2 Personal")) {
                WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
                Objects.requireNonNull(wifiManager).setWifiEnabled(true);

                WifiConfiguration conf = new WifiConfiguration();
                conf.SSID = "\"" + ssid + "\"";   // Please note the quotes. String should contain SSID in quotes
                conf.preSharedKey = "\"" + password + "\"";

                conf.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
                conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
                conf.status = WifiConfiguration.Status.ENABLED;
                conf.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
                conf.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
                conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
                conf.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
                conf.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
                conf.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
                conf.allowedProtocols.set(WifiConfiguration.Protocol.WPA);

                // turns on Wifi
                Objects.requireNonNull(wifiManager).setWifiEnabled(true);

                // add wifi configuration to Device.
                int newNetworkId = wifiManager.addNetwork(conf);
                Log.e(TAG, "Wifi Profile added");
                // try to connect to this network
                wifiManager.enableNetwork(newNetworkId, true);
                // saves configuration else after reboot it will be gone
                wifiManager.saveConfiguration();
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...