WifiManager, disableNetwork() всегда возвращает false в Oreo

Это мой код. Возвращаемое значение всегда ложно. У меня включено разрешение «Местоположение». я использую этот код для программного подключения к другой сети (ОТКРЫТОЙ) [код здесь не указан. Я использую enableNetwork() и reconnect()]. Но затем телефон автоматически подключается к предыдущей сети. Эта проблема наблюдается в Google Pixel версии 8.1.0. Я проверил в Android v7. работает отлично.

    WifiManager wifiManager = (WifiManager) context.getApplicationContext().getSystemService(Context.WIFI_SERVICE);
                List<WifiConfiguration> configurations = wifiManager.getConfiguredNetworks();
                for (WifiConfiguration config : configurations) {
                    Log.d("bhargav","SSID "+config.SSID);
//here it always returns false.
                        LibreLogger.d(this,"Disabling "+config.SSID+", result -> "+wifiManager.disableNetwork(config.networkId));

                }

person Bhargav Kumar    schedule 07.06.2018    source источник
comment
из документа: Приложениям не разрешено отключать сети, созданные другими приложениями. — вы уверены, что ваше приложение создало эту сеть?   -  person Selvin    schedule 07.06.2018
comment
Selvin, я использую этот код для программного подключения к другой сети (OPEN). Но затем телефон автоматически подключается к предыдущей сети. Итак, я думал, что отключение сети решит проблему.   -  person Bhargav Kumar    schedule 07.06.2018


Ответы (1)


При попытке отключить сети, внешние по отношению к приложению в Oreo, появляется следующая ошибка:

E/WifiConfigManager: UID XXXX does not have permission to update configuration "SSID"

Дополнительные сведения см. в этих ответах.

person randomuser    schedule 07.06.2018