如何断开与joinOnce NEHotspotConfiguration的连接?

4

我能够成功地使用NEHotspotConfiguration连接到我们的物联网设备热点,但当用户取消设置过程时,我们需要能够断开与热点的连接。

调用NEHotspotConfigurationManager.shared.removeConfiguration()仅会移除配置文件,但如果手机当前已连接到热点,则此调用无效,设备仍然保持连接状态。

如何从此热点断开连接?看起来应该很简单!


它确实会从连接的热点断开。尝试使用NEHotspotConfigurationManager.shared.removeConfiguration(forSSID: "testwifi") - RTXGamer
1
从其他地方的评论中我发现,如果将 joinOnce 设置为 false,则会断开连接,但如果设置为 true,则会保持连接:https://developer.apple.com/forums/thread/116978 - Leon
你遇到了同样的问题吗?你解决了吗? - bezoadam
@bezoadam 最终我无法使用joinOnce完成它,所以我将其设置为false,并且不得不添加额外的逻辑来处理我的应用程序流程。 - Leon
2个回答

1
    NEHotspotConfigurationManager.shared.getConfiguredSSIDs { configuration in
    
                print("configuration : \(configuration)")
    
                NEHotspotConfigurationManager.shared.removeConfiguration(forSSID: configuration[0])

NEHotspotConfigurationManager.shared.removeConfiguration(forHS20DomainName: configuration[0])
            }

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)的这个问题,但没有解决方案。


感谢您的回复并报告了这个问题。我看到了那个帖子,但它并不是同一个具体问题,删除配置确实可以工作,但不是在设备连接到该SSID时。苹果工程师似乎犯了一个明显的疏忽,一旦设备连接上了,就无法通过编程方式断开连接。我已经有一段时间没有看过那段代码了,但也许一个选项是尝试连接到一个虚拟的SSID,下次我在那个项目上工作时可以试试。 (您提交的反馈链接显示找不到) - Leon
@Leon,你所看到的行为与我报告的错误一致。最近,这个错误似乎已经在iOS 15.4中修复了。我建议你再次尝试使用15.4进行测试,但请确保你是使用applyConfiguration()并且joinOnce = true连接的。 - Phil

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接