iOS:BLE设备(不是iBeacon)可以唤醒我的应用吗?

Vin*_*t D 3 iphone ios core-bluetooth bluetooth-lowenergy

是否可以将常规蓝牙低功耗设备(不是iBeacon!)与我的iPhone应用程序相关联,这样当设备发送数据时,我的应用程序会被iPhone唤醒,即使iPhone被锁定且应用程序被终止(甚至没有在后台)?

Pau*_*w11 5

只要您的应用指定蓝牙中央后台模式,它就会被唤醒

  • 您的应用程序与设备具有当前连接,并且它会发送数据(即设备在范围内并通知或指示特征)
  • 您的应用程序与设备有挂起的连接,并且它进入范围(即设备超出范围,但是connect当它进入范围时,您已调用自动重新连接)
  • 您的应用正在扫描特定服务类型,并且广告中包含这些服务类型之一的设备

您的应用程序终止的情况略有不同.对于这种情况,在这种情况下,您的应用必须实现状态保存和恢复

核心蓝牙支持实现核心角色,外围角色或两者的应用程序的状态保留和恢复.

当您的应用程序实现核心角色并添加对状态保留和恢复的支持时,系统将在系统即将终止您的应用程序以释放内存时保存中央管理器对象的状态(如果您的应用程序有多个中央管理器,则可以选择您希望系统跟踪的那些).特别是,对于给定的CBCentralManager对象,系统会跟踪:

  • 中央管理器正在扫描的服务(以及扫描开始时指定的任何扫描选项)
  • 中央管理器尝试连接或已连接的外围设备
  • 中央经理订阅的特征

Apple指南讨论了由于内存压力导致应用程序终止的情况.它没有指定如果用户在应用切换器中"向上扫描"终止应用程序会发生什么 - 在许多情况下,iOS会将此视为用户不希望应用程序根本运行而不会运行在这种情况下恢复它.