我的应用程序使用NEHotspotConfigurationManager
Wi-Fi 将自身连接到某个设备。该设备充当 WPA2 接入点。在较旧的 iOS 版本(iOS 12 及更低版本)中,一切正常,但在 iPadOS/iOS 13 中,设备每次都会在一段时间后断开连接。如何在不NEHotspotConfiguration
永久存储的情况下保持连接?
我怀疑它与一个新功能有关 - 多个 Windows(我的应用程序不支持)。原因是NEHotspotConfiguration
我将joinOnce
标志设置为true
(因为设备的网络不应该在应用程序之外使用)。苹果的文档指出:
当 joinOnce 设置为 true 时,只要配置它的应用程序在前台运行,热点就会保持配置和连接状态。当发生以下任何事件时,热点将断开连接并删除其配置:
- 该应用程序在后台停留超过 15 秒。
- 设备休眠。
- 应用程序崩溃、退出或被卸载。
- 该应用程序将设备连接到不同的 Wi-Fi 网络。
也许我的应用程序被错误地识别为离开前台。
设置joinOnce
为false
使应用程序保持连接,但这不是一个可接受的解决方案,因为我的设备不提供 Internet 连接,并且不得在应用程序之外使用它。
以下是我如何应用热点配置:
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
。