如何让 BLE 运行 即使 Mac 进入睡眠状态?

How to have the BLE running even when the Mac goes to sleep?

我是为 Mac OS 开发应用程序的新手,目前正在开发一个应用程序,我想在其中使用 BLE 运行 即使 Mac 转到睡眠模式。 基本上,如果外围设备在范围内,我希望 Mac 应用程序连接到外围设备,如果不在范围内,它们将断开连接,但如果外围设备返回范围内,我希望 mac 应用程序重新连接。

有办法吗?我在 iOS 上开发了一些应用程序,我知道 iOS 中有后台模式,但显然我们在 Mac 应用程序中没有它,这很有意义,但有什么我们可以可以用来在设备进入睡眠状态时保留应用程序 运行 吗?

感谢您花时间研究这个问题。

谢谢,

简短的回答是你不能。

后台模式不同于睡眠模式。当 iOS 设备处于低功耗模式时,显示屏会关闭,其他各种硬件也会关闭以节省电量,但​​它仍在执行代码。

当 Mac 处于休眠模式时,执行将暂停,因此您的应用无法 运行。从理论上讲,Apple 的 PowerNap 功能可以让您做一些事情,但没有 public API 可用于它。

当然,当 Mac 处于睡眠状态时,您的应用会保持 运行ning,因为当 Mac 从睡眠中恢复时,用户不需要采取任何操作来像在 iOS 上可能必须重新启动您的应用程序一样,但当 Mac 处于睡眠模式时您实际上无法执行代码。

如果 Mac 唤醒时设备在范围内,您最好让您的应用程序重新连接。