ios - iPadOS:通过 NEHotspotConfiguration 连接的网络在一段时间后断开连接
问题描述
我的应用程序使用NEHotspotConfigurationManager
Wi-Fi 将自身连接到某个设备。该设备充当 WPA2 接入点。在较旧的 iOS 版本(iOS 12 及更低版本)中,一切正常,但在 iPadOS/iOS 13 中,设备每次都会在一段时间后断开连接。如何在不NEHotspotConfiguration
永久存储的情况下保持连接?
我怀疑它与一个新功能有关 - 多个 Windows(我的应用程序不支持)。原因是NEHotspotConfiguration
我将joinOnce
标志设置为true
(因为设备的网络不应该在应用程序之外使用)。苹果的文档指出:
当 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
。
解决方案
Apple 似乎已在 iOS 13.4 beta 2 中解决了该问题,现在它可以joinOnce = true
按照文档说明使用。苹果论坛相关讨论
推荐阅读
- c++ - 浮点舍入为 80 位寄存器和 64 位双精度提供不同的结果:格式错误的代码或 gcc/clang 错误?
- c++ - 如何将 SetCurrentConsoleFontEx 与 AddFontMemResourceEx 加载的字体一起使用?
- javascript - 当我尝试保存猫鼬模式时,它不起作用
- windows - 使用 Powershell 从 Windows 10 任务栏中取消固定新 Edge
- c++ - 数组或对象:如何将 nlohmann::json 用于简单的用例?
- c++ - C++ Valgrind FIX 条件跳转或移动取决于未初始化的值
- python - Tkinter如何通过选中复选框来锁定文本小部件?
- nlp - 使用 FastAPI 为 roberta ClassificationModel 提供服务的 API
- c++ - 如何在 C++ 中正确实现哈希插入函数?
- node.js - 如何处理服务器为连续请求发送两个不同的 cookie?