iOS在未运行状态下从BLE获取数据

时间:2019-01-09 04:44:38

标签: ios swift bluetooth-lowenergy core-bluetooth

我已成功从BLE处于前台和后台状态获取数据。也称为核心蓝牙框架的相应委托方法。

在用户强制退出应用程序后,我希望从BLE设备获取数据。是否可以在未运行状态下从BLE获取数据?还是有任何在非运行状态下会被调用的方法,例如iBeacon?

1 个答案:

答案 0 :(得分:0)

除非使用iBeacon BLE设备,否则我认为这是不可能的。如Understanding When Your App Gets Launched into the Background部分所述:

  

支持后台执行的应用可能会重新启动   系统处理传入事件。如果某个应用因任何原因终止   除了用户强制退出的原因外,系统还会启动   发生以下事件之一时启动应用程序:

     

对于蓝牙应用:

     
      
  • 扮演中心角色的应用程序接收数据   从连接的外围设备。
  •   
  • 扮演外围角色的应用   从连接的中心接收命令。
  •   
     

在大多数情况下,强制使用后系统不会重新启动应用程序   由用户退出。定位应用程序是一个例外,它在iOS 8和   后来被用户强行退出后重新启动。其他   但是,在这种情况下,用户必须明确启动应用程序或重新启动   设备可以在应用自动启动之前   系统的背景。在设备上启用密码保护后,系统不会在用户首次解锁设备之前在后台启动应用程序。

因此,当应用程序由用户(而不是系统)强制退出时,这意味着用户不希望该应用程序在后台运行,并且该应用程序将不会重新启动,也不会调用委托。

但是,如果该应用被系统杀死,则iOS将在调用委托时再次唤醒它。