IPadOS: сеть, подключенная через NEHotspotConfiguration, через некоторое время отключается
Мое приложение использует NEHotspotConfigurationManager
для подключения к определенному устройству с помощью Wi-Fi. Устройство действует как точка доступа WPA2. В старых версиях iOS (iOS 12 и ниже) все работало нормально, но в iPadOS/iOS 13 устройство отключается через некоторое время каждый раз. Как сохранить соединение без постоянного хранения NEHotspotConfiguration
?
Я подозреваю, что это как-то связано с новой функцией - Multiple Windows (которая не поддерживается моим приложением). Причина в том, что в моем NEHotspotConfiguration
я установил флаг joinOnce
на true
(поскольку сеть устройства никогда не должна использоваться вне приложения). Документация Apple гласит:
Когда для joinOnce установлено значение true, горячая точка остается настроенной и подключенной только до тех пор, пока настроенное приложение работает на переднем плане. Точка доступа отключается, и ее конфигурация удаляется, когда происходит любое из следующих событий:
- Приложение остается в фоновом режиме более 15 секунд.
- Устройство спит.
- Приложение аварийно завершает работу, закрывается или удаляется.
- Приложение подключает устройство к другой сети Wi-Fi.
Возможно, мое приложение ошибочно признано уходящим с переднего плана.
Если для параметра joinOnce
установлено значение false
, приложение будет поддерживать соединение, но это неприемлемое решение, поскольку мое устройство не обеспечивает подключение к Интернету и его нельзя использовать вне приложения.
Вот как я могу применить конфигурацию точки доступа:
let hotspotConfiguration = NEHotspotConfiguration(ssid: self.ssid, passphrase: self.passphrase, isWEP: false)
hotspotConfiguration.joinOnce = true
NEHotspotConfigurationManager.shared.apply(hotspotConfiguration) { error in
// connection is successfully applied
// and about 15 seconds later it is lost.
}
Я ожидаю, что соединение будет сохраняться, когда для флага joinOnce
установлено значение true
.