ios - 对于长时间任务,如何从终止状态重新启动我的 iOS 应用程序?

标签 ios bluetooth bluetooth-lowenergy core-bluetooth geofencing

首先我将解释我想要实现的目标。 我有一个 BLE 锁。我希望我的应用程序能够从终止状态唤醒并开始扫描 BLE 设备。一旦 BLE 设备找到,它将与我的手机连接并解锁。

所有这些都在后台模式下运行,我对此进行了多次测试。但我也希望当应用程序处于终止状态时它可以工作。

我尝试了几件事。首先,我尝试了地理围栏,但如果地理围栏应用程序唤醒时间较短,我无法正确扫描 BLE 设备。当 didEnterRegion zone: 调用时,我发送了本地通知,并且工作正常。因此,在那之后,我尝试在 didEnterRegion Region: 时扫描 BLE 设备,并且还收到扫描已开始的通知,但我认为一段时间后应用程序会自动从后台删除,并且无法重新启动。这就是为什么我未能发现任何 BLE 设备。

我还阅读了苹果关于核心蓝牙的文档: https://developer.apple.com/library/archive/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/CoreBluetoothBackgroundProcessingForIOSApps/PerformingTasksWhileYourAppIsInTheBackground.html

有人提到如何执行长时间的任务,例如打开和关闭门锁,但对我没有帮助。

请指导我当应用程序处于终止状态时如何执行此操作。

感谢您的帮助:)

更新: 我的意思是终止状态是暂停/终止/从后台删除。我只是希望一旦用户进入地理围栏区域,应用程序就会在后台启动并开始扫描 BLE 设备。所以之后我希望应用程序将留在后台,直到门解锁。

最佳答案

正如 Paulw11 提到的,一旦应用程序被用户终止/终止,就无法在后台重新启动应用程序。出于安全和功能原因,Apple 故意这样做:如果用户因为应用程序有错误/故障而故意终止该应用程序,则该应用程序不应该能够自行重新启动。

更多信息可以在这里找到:-

我希望这会有所帮助。

关于ios - 对于长时间任务,如何从终止状态重新启动我的 iOS 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57424206/

相关文章:

ios - 收集有关用户在应用程序内点击位置的信息

ios - iOS 中 SQLite 数据库的电子邮件 CSV

ios - ObjectMapper 因根元素而失败

iOS 后台蓝牙事件

Android等待启动BluetoothSco SCO_AUDIO_STATE_CONNECTED

bluetooth - BlueGiga BLE 开发工具

ios - BLE + ios 上的虚拟串口?

ios - 带有 CustomCell 的 UITableView 在 Xcode9 上不显示数据 Swift4

android - 写特征总是假的

android - 为什么 BluetoothManager.OpenGattServer() 在我的 Nexus 7 上总是返回 null?