【问题标题】:What can you do in CoreBluetooth background delegate calls?您可以在 CoreBluetooth 后台委托调用中做什么?
【发布时间】:2013-01-09 10:56:40
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: core-bluetooth


    【解决方案1】:

    好吧,这似乎是我的问题。根据文档,当您的应用程序收到与蓝牙相关的委托调用时,它会被唤醒(在后台)大约 10 秒。

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

    我的代码如下所示。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-11
      • 1970-01-01
      • 2012-07-13
      • 2011-07-02
      • 2016-05-12
      • 1970-01-01
      • 1970-01-01
      • 2015-02-13
      相关资源
      最近更新 更多