首先我将解释我想要实现的目标。 我有一个 BLE 锁。我希望我的应用程序能够从终止状态唤醒并开始扫描 BLE 设备。一旦 BLE 设备找到,它将与我的手机连接并解锁。
所有这些都在后台模式下运行,我对此进行了多次测试。但我也希望当应用程序处于终止状态时它可以工作。
我尝试了几件事。首先,我尝试了地理围栏,但如果地理围栏应用程序唤醒时间较短,我无法正确扫描 BLE 设备。当 didEnterRegion zone:
调用时,我发送了本地通知,并且工作正常。因此,在那之后,我尝试在 didEnterRegion Region:
时扫描 BLE 设备,并且还收到扫描已开始的通知,但我认为一段时间后应用程序会自动从后台删除,并且无法重新启动。这就是为什么我未能发现任何 BLE 设备。
有人提到如何执行长时间的任务,例如打开和关闭门锁,但对我没有帮助。
请指导我当应用程序处于终止状态时如何执行此操作。
感谢您的帮助:)
更新: 我的意思是终止状态是暂停/终止/从后台删除。我只是希望一旦用户进入地理围栏区域,应用程序就会在后台启动并开始扫描 BLE 设备。所以之后我希望应用程序将留在后台,直到门解锁。
最佳答案
正如 Paulw11 提到的,一旦应用程序被用户终止/终止,就无法在后台重新启动应用程序。出于安全和功能原因,Apple 故意这样做:如果用户因为应用程序有错误/故障而故意终止该应用程序,则该应用程序不应该能够自行重新启动。
更多信息可以在这里找到:-
- Core Bluetooth Background Processing for iOS Apps
- BLE device keep connect with iPhone when application terminate
我希望这会有所帮助。
关于ios - 对于长时间任务,如何从终止状态重新启动我的 iOS 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57424206/