你在CoreBluetooth后台委托调用中可以做些什么?

时间:2013-01-09 10:56:40

标签: core-bluetooth

我在我的项目中使用Core Bluetooth。我已经包含了Session Backgrounding以利用其后台模式功能。我观察到外围设备断开的代表,

- (void)centralManager:(CBCentralManager *)central didDisconnectPeripheral:(CBPeripheral *)peripheral error:(NSError *)error;

在后台模式中被调用。但是,除了NSLog之外,我在此方法中编写的任何代码都不会执行。有人可以解释一下这里可以执行哪种代码吗?

我的目标是将此断开连接通知发送到我的服务器。

1 个答案:

答案 0 :(得分:0)

好吧,这似乎是我的一些问题。根据文档,你的应用程序被唤醒(在后台)大约10秒,当它获得蓝牙相关的代表呼叫。

您可以使用这段时间执行任何非视图更新任务,甚至可以使用beginBackgroundTaskWithExpirationHandler请求额外的时间。

我的代码看起来像这样。

if ([UIApplication sharedApplication].applicationState == UIApplicationStateBackground) {
    [self sendEmailInBackground:peripheral]; //Code to send a server request
    return;
}

并且它在后台模式下工作。这在手机处于锁定状态时也有效。