我能够成功地使用NEHotspotConfiguration
连接到我们的物联网设备热点,但当用户取消设置过程时,我们需要能够断开与热点的连接。
调用NEHotspotConfigurationManager.shared.removeConfiguration()
仅会移除配置文件,但如果手机当前已连接到热点,则此调用无效,设备仍然保持连接状态。
如何从此热点断开连接?看起来应该很简单!
我能够成功地使用NEHotspotConfiguration
连接到我们的物联网设备热点,但当用户取消设置过程时,我们需要能够断开与热点的连接。
调用NEHotspotConfigurationManager.shared.removeConfiguration()
仅会移除配置文件,但如果手机当前已连接到热点,则此调用无效,设备仍然保持连接状态。
如何从此热点断开连接?看起来应该很简单!
NEHotspotConfigurationManager.shared.getConfiguredSSIDs { configuration in
print("configuration : \(configuration)")
NEHotspotConfigurationManager.shared.removeConfiguration(forSSID: configuration[0])
NEHotspotConfigurationManager.shared.removeConfiguration(forHS20DomainName: configuration[0])
}
当我连接到我的物联网设备时,我在iOS 15.2中看到了相同的行为:调用removeConfiguration(forSSID:)不会断开之前使用joinOnce = true连接的热点。
这与Apple关于joinOnce的文档相反,文档中说:
要从配置为joinOnce设置为true的热点断开设备,请调用removeConfiguration(forSSID:)
因此,这似乎是iOS 15.2或Apple文档中的错误。我在这里创建了一个错误报告:https://feedbackassistant.apple.com/feedback/9954367,等我收到回复后我会回复。
我还发现在这个开发者论坛线程中讨论了早期iOS版本(12.2、12.3.1)的这个问题,但没有解决方案。
NEHotspotConfigurationManager.shared.removeConfiguration(forSSID: "testwifi")
。 - RTXGamerjoinOnce
设置为 false,则会断开连接,但如果设置为 true,则会保持连接:https://developer.apple.com/forums/thread/116978 - LeonjoinOnce
完成它,所以我将其设置为false,并且不得不添加额外的逻辑来处理我的应用程序流程。 - Leon