我的应用使用NEHotspotConfigurationManager
通过Wi-Fi将自身连接到特定设备。该设备充当WPA2接入点。在较旧的iOS版本(iOS 12及更低版本)中,一切正常,但在iPadOS / iOS 13中,每隔一段时间就会断开设备的连接。如何保持连接而不永久存储NEHotspotConfiguration
?
我怀疑它与新功能-多个Windows(我的应用程序不支持)有关。原因是在我的NEHotspotConfiguration
中,我将joinOnce
标志设置为true
(因为从不应该在应用程序外部使用设备的网络)。 Apple's documentation声明:
当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
时保持连接状态。
答案 0 :(得分:2)
Apple似乎已解决了iOS 13.4 beta 2中的问题,如记录所示,它现在可以与joinOnce = true
一起使用。 Related discussion on Apple's forum