как добавить сеть в wificonfig после API уровня26 - PullRequest
0 голосов
/ 30 августа 2018

Я сталкиваюсь с проблемой с Wi-Fi, если AP имеет тот же ssid и пароль, я получаю BSSID как ноль или любой из метода getconfiguredNetwork (). Итак, я хочу добавить сеть вручную в конфигурацию Wi-Fi, но это добавить, удалить и обновить не будет работать с Api Levl 26. Есть ли другой альтернативный способ решения этого решения. Ссылочная ссылка .

   WifiConfiguration conf = new WifiConfiguration();
    conf.SSID = "\"" + networkSSID + "\"";
    conf.BSSID = Bssid;
    conf.preSharedKey = "\"" + networkPasskey + "\"";
    WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
    wifiManager.addNetwork(conf);
    List<WifiConfiguration> list = wifiManager.getConfiguredNetworks();
    for (WifiConfiguration i : list) {
        if (i.BSSID != null && i.BSSID.equals(Bssid)) {
            wifiManager.disconnect();
            wifiManager.enableNetwork(i.networkId, true);
            wifiManager.reassociate();
            Log.d("changing network", "connecting the right network");
            break;
        }

    }

enter image description here

1 Ответ

0 голосов
/ 30 августа 2018

Вам потребуются разрешения для определения местоположения, начиная с Android 8.1 и 9 Google изменил способ доступа к информации Wi-Fi.

https://developer.android.com/about/versions/pie/android-9.0-changes-all#restricted_access_to_wi-fi_location_and_connection_information

Вам потребуются разрешения ACCESS_FINE_LOCATION или ACCESS_COARSE_LOCATION, а также пользователь, у которого включена служба определения местоположения. Это не может быть сделано любым другим способом из-за проблем конфиденциальности, связанных с WiFi.

...