我已成功从BLE处于前台和后台状态获取数据。也称为核心蓝牙框架的相应委托方法。
在用户强制退出应用程序后,我希望从BLE设备获取数据。是否可以在未运行状态下从BLE获取数据?还是有任何在非运行状态下会被调用的方法,例如iBeacon?
答案 0 :(得分:0)
除非使用iBeacon BLE设备,否则我认为这是不可能的。如Understanding When Your App Gets Launched into the Background部分所述:
支持后台执行的应用可能会重新启动 系统处理传入事件。如果某个应用因任何原因终止 除了用户强制退出的原因外,系统还会启动 发生以下事件之一时启动应用程序:
对于蓝牙应用:
- 扮演中心角色的应用程序接收数据 从连接的外围设备。
- 扮演外围角色的应用 从连接的中心接收命令。
在大多数情况下,强制使用后系统不会重新启动应用程序 由用户退出。定位应用程序是一个例外,它在iOS 8和 后来被用户强行退出后重新启动。其他 但是,在这种情况下,用户必须明确启动应用程序或重新启动 设备可以在应用自动启动之前 系统的背景。在设备上启用密码保护后,系统不会在用户首次解锁设备之前在后台启动应用程序。
因此,当应用程序由用户(而不是系统)强制退出时,这意味着用户不希望该应用程序在后台运行,并且该应用程序将不会重新启动,也不会调用委托。
但是,如果该应用被系统杀死,则iOS将在调用委托时再次唤醒它。