У меня была функция, она подключает пользователя к сети Wi-Fi с использованием ssid и пароля, она работает нормально, но несколько дней go, она не подключается к выбранному Wi-Fi, она автоматически вернется к последнему подключенному Wi-Fi, я Я нахожусь на android P , прежде чем опубликовать свой вопрос, я пробовал некоторые решения в stackoverflow, но всегда та же проблема.
private void connectPlace(String ssid, String key) {
WifiManager wm = (WifiManager) getActivity().getApplicationContext().getSystemService(WIFI_SERVICE);
wm.disconnect();
List<WifiConfiguration> wifiConfigurations = wm.getConfiguredNetworks();
for (WifiConfiguration wf : wifiConfigurations)
wm.removeNetwork(wf.networkId);
if ((ssid != null && !ssid.isEmpty()) && (key != null && !key.isEmpty())) {
WifiConfiguration wifiConfig = new WifiConfiguration();
List<WifiConfiguration> configuredNetworks = wm.getConfiguredNetworks();
if (configuredNetworks != null) {
for (WifiConfiguration existingConfig : configuredNetworks) {
if (wifiConfig.priority <= existingConfig.priority) {
wifiConfig.priority = existingConfig.priority + 1;
}
}
}
wifiConfig.SSID = String.format("\"%s\"", ssid);
wifiConfig.preSharedKey = String.format("\"%s\"", key);
int netId = wm.addNetwork(wifiConfig);
if(netId == -1)
{
netId = getExistingNetworkId(ssid,wm);
}
wm.disconnect();
wm.enableNetwork(netId, true);
wm.reconnect();
} else {
Log.e(TAG, "Wifi data is empty !");
}
}
private int getExistingNetworkId(String SSID, WifiManager wifiManager) {
List<WifiConfiguration> configuredNetworks = wifiManager.getConfiguredNetworks();
if (configuredNetworks != null) {
for (WifiConfiguration existingConfig : configuredNetworks) {
if (existingConfig.SSID.equals(SSID)) {
return existingConfig.networkId;
}
}
}
return -1;
}