iPadOS:通过NEHotspotConfiguration连接的网络在一段时间后断开连接

Mat*_*ski 17 ios swift networkextension ios13 ipados

我的应用用来NEHotspotConfigurationManager通过Wi-Fi将自身连接到特定设备。该设备充当WPA2接入点。在较旧的iOS版本(iOS 12及更低版本)中,一切正常,但在iPadOS / iOS 13中,每隔一段时间就会断开设备的连接。如何保持连接而不NEHotspotConfiguration永久存储?

我怀疑它与新功能-多个Windows(我的应用程序不支持)有关。原因是在我的NEHotspotConfiguration我将joinOnce标志设置为true(因为永远不要在应用程序外部使用设备的网络)。苹果的文档指出:

如果joinOnce设置为true,则仅在配置了热点的应用程序在前台运行时,热点才会保持配置和连接。发生以下任何事件时,都会断开热点并删除其配置:

  • 该应用程序在后台停留超过15秒。
  • 设备进入睡眠状态。
  • 该应用程序崩溃,退出或被卸载。
  • 该应用程序将设备连接到其他Wi-Fi网络。

也许我的应用被错误地识别为前景。

设置joinOncefalse可使应用程序保持连接状态,但这不是可接受的解决方案,因为我的设备不提供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.
}
Run Code Online (Sandbox Code Playgroud)

我希望将joinOnce标志设置为时保持连接true

Mar*_*arc 3

Apple 似乎已在 iOS 13.4 beta 2 中修复了该问题,现在可以按照joinOnce = true文档说明使用。Apple论坛上的相关讨论