Я пытаюсь программно подключиться к сети 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
Проблема с программным соединением Wi-Fi: Правильный пароль не удастся после начальной неверной попытки в iOS ⇐ IOS
Программируем под IOS
1755882209
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, чтобы попытка подключения с правильным паролем работала после предыдущей неправильной попытки? Спасибо!
Подробнее здесь: [url]https://stackoverflow.com/questions/79277792/wi-fi-programmatic-connection-issue-correct-password-fails-after-initial-incorr[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия