Я использую информацию Wi-Fi в моем приложении. Я прекрасно использовал эту функцию до сих пор, но с iOS 13 и введением нового разрешения для местоположения «Разрешить один раз» я получаю эту ошибку: [] nehelper отправил недопустимый код результата [1] для запроса информации Wi-Fi . Эта ошибка возникает, когда я пытаюсь перейти на страницу настроек WiFi для подключения к SSID WiFi для во второй раз в моем приложении.
Разрешить однократно Разрешение:
Предоставляет предварительную авторизацию, которая аналогична разрешению «Когда используется», но активна только для одного сеанса. Таким образом, если пользователь выбирает опцию разрешить один раз, ваше приложение может получить доступ к своему текущему местоположению, пока ваше приложение не будет перемещено в фоновый режим и не станет неактивным. Если ваше приложение снова становится активным, вы должны снова запросить разрешение на местоположение.
Ниже приведен мой код для получения разрешения на местоположение:
locationManager.delegate = self
locationManager.distanceFilter = kCLDistanceFilterNone
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.allowsBackgroundLocationUpdates = true
locationManager.pausesLocationUpdatesAutomatically = false
locationManager.requestAlwaysAuthorization()
В моем случае, Я выбираю разрешение Разрешить один раз , затем дважды перехожу на задний план, чтобы выбрать точку доступа WiFi в общей сложности 2 раза. Он работает впервые, однако во 2-й раз он не дает мне информацию о SSID подключенного WiFi, а вместо этого выдает мне эту ошибку: [] nehelper отправил неверный код результата [1] для информации Wi-Fi request. Как все время подключать WiFi SSID в разрешении местоположения «Allow Once»? Согласно новым изменениям в iOS 13, как показано ниже:
Конфигурация WiFi использует CNCopyCurrentNetworkInfo, которая возвращает текущую информацию о сети для данного сетевого интерфейса. Таким образом, этот словарь содержит нашу текущую информацию о сети, в основном SSID сети Wi-Fi.
Запрашивающее приложение должно соответствовать следующим требованиям:
Приложение использует базовое местоположение и имеет разрешение пользователя на использование информации о местоположении. .
Приложение, которое не удовлетворяет вышеуказанным требованиям, получает следующее возвращаемое значение:
Приложение, связанное с iOS 12 или более ранней версией, получает словарь с псевдослучайными значениями. В этом случае SSID - это Wi-Fi (или WLAN в регионе Китая), а BSSID - это 00: 00: 00: 00: 00: 00.
Приложение, связанное с * iOS 13 * или позже получает NULL.
Если вы не соответствуете вышеуказанным условиям, CNCopyCurrentNetworkInfo всегда будет возвращать ноль в iOS 13.
Ссылка: [https://developer.apple.com/documentation/systemconfiguration/1614126-cncopycurrentnetworkinfo] [1 ]