背景模式中的BLE:didUpdateValueForCharacteristic not called

时间:2016-07-20 14:13:52

标签: ios bluetooth core-bluetooth bluetooth-lowenergy uibackgroundtask

我是一个自定义类(让我们说MyBLE)作为CoreBluetooth包装器(类似于LGBluetooth,我猜)。它处理我的BLE配件和iOS设备之间的通信:

MyBLE.h

@interface MyBLE : NSObject

@property (nonatomic, strong)   CBCentralManager *central;
@property (nonatomic, strong)   CBPeripheral     *peripheral;

+ (MyBLE *)sharedInstance;

//...

@end

AppDelegate中,我将其初始化为MyBLE对象,在前台工作正常。我在 Info.plist 中设置了所需条目,以便根据Core Bluetooth Programming Guide使用UIBackgroundMode,以便我可以继续通过BLE附件发送数据。

但是当我按下主页按钮时,当iOS从BLE外设获取数据时,Xcode控制台不再打印出应该打印的任何消息。在进入后台模式之前,设备已连接到iOS设备(中央)。

我错过了什么吗?似乎应用程序在3分钟后不再从BLE设备获取数据。 (是的,我确实添加了bluetooth-central

1 个答案:

答案 0 :(得分:1)

在我将MyBLE对象的初始化从-init:移动到-application:didFinishLaunchingWithOptions:之后,它运行了。

猜猜代理人当时没有被认为是初始化的。