iPad OS:通过NEHotspotConfiguration连接的网络过了一会儿就会断开连接

时间:2019-08-19 08:25:44

标签: ios swift ios13 networkextension ipados

我的应用使用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时保持连接状态。

1 个答案:

答案 0 :(得分:2)

Apple似乎已解决了iOS 13.4 beta 2中的问题,如记录所示,它现在可以与joinOnce = true一起使用。 Related discussion on Apple's forum