Проблема с программным соединением Wi-Fi: Правильный пароль не удастся после начальной неверной попытки в iOSIOS

Программируем под IOS
Ответить
Anonymous
 Проблема с программным соединением Wi-Fi: Правильный пароль не удастся после начальной неверной попытки в iOS

Сообщение Anonymous »

Я пытаюсь программно подключиться к сети Wi-Fi в моем приложении для iOS, используя NehotspotConfiguration. Вот проблема, с которой я сталкиваюсь: < /p>
Когда я пытаюсь подключиться с неверным паролем в первый раз, она показывает ошибку: «Не удалось подключиться: не связан с ожидаемым SSID». (Что ожидаемое поведение).
После этого я исправляю пароль и пытаюсь снова подключиться. Однако он по -прежнему показывает ту же ошибку («не удалось подключиться: не связан с ожидаемой SSID».) И не подключается к сети, даже если пароль правильный. < /P>
Вот код, который я использую: < /p>
func connectToWiFi(ssid: String, password: String, joinOnce: Bool, completion: @escaping (Bool, String) -> Void) {

// First, remove any existing configuration for the SSID to avoid caching issues
NEHotspotConfigurationManager.shared.removeConfiguration(forSSID: ssid)

DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) {

let hotspotConfiguration = NEHotspotConfiguration(ssid: ssid, passphrase: password, isWEP: false)
hotspotConfiguration.joinOnce = joinOnce

NEHotspotConfigurationManager.shared.apply(hotspotConfiguration) { error in
if let error = error {
if (error as NSError).code == NEHotspotConfigurationError.alreadyAssociated.rawValue {
print("Already connected to the Wi-Fi: \(ssid)")
completion(true,"Already connected to the Wi-Fi: \(ssid)")
} else {
print("Failed to connect to Wi-Fi: \(ssid), Error: \(error.localizedDescription)")
completion(false, "Failed to connect to Wi-Fi: \(ssid), Error: \(error.localizedDescription)")
}
} else {
print(WiFiSSIDManager.shared.currentSSIDs())
if WiFiSSIDManager.shared.currentSSIDs().first == ssid {
// Real success
completion(true, "Successfully connected to Wi-Fi: \(ssid)")
} else {
// Failure
completion(false, "Failed to connect: Not associated with the expected SSID.")
}
}
}
}
}

func currentSSIDs() -> [String] {
var ssid: [String] = []
if let interfaces = CNCopySupportedInterfaces() as NSArray? {
for interface in interfaces {
if let interfaceInfo = CNCopyCurrentNetworkInfo(interface as! CFString) as NSDictionary? {
if let currentSSID = interfaceInfo[kCNNetworkInfoKeySSID as String] as? String {
ssid.append(currentSSID)
}
}
}
}
return ssid
}

< /code>
Существует ли способ полностью сбросить состояние Wi-Fi для специфической SSID-программно в iOS, чтобы попытка подключения с правильным паролем работала после предыдущей неправильной попытки? Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/792 ... ial-incorr
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»