iOS BLE应用程序仅在几分钟后停止在后台扫描

时间:2018-03-05 16:16:39

标签: ios bluetooth-lowenergy

我需要做什么:

我的iOS应用程序需要能够在后台扫描(即使设备被锁定)并连接到广告外围设备。我希望应用程序在未来几天或几周内进行扫描。

我理解最终,我无法保证能得到我想要的东西,但我想确保我遵循最佳实践。

我当前的设置:

我开始在didFinishLaunchingWithOptions扫描:

[self.centralManager scanForPeripheralsWithServices:self.services options:nil];

self.services是我期待的服务列表。我也在centralManagerDidUpdateState

进行此调用
- (void)centralManagerDidUpdateState:(CBCentralManager *)central {

  switch ([central state]) {
    case CBCentralManagerStatePoweredOn:
      [self.centralManager scanForPeripheralsWithServices:self.services options:nil];
    ...
  }
}

最后,当连接的外围设备断开连接时,我会扫描外围设备。我使用的外围设备断开连接以节省电池,所以它实际上很快发生。鉴于我的项目需求,我无法重新设计设备以保持连接。当它有新的数据要发送时,它会唤醒并做广告,因此它是相当不可预测的。

我的问题:

我可以采用不同的方式让应用程序在后台和锁定状态下扫描更长时间吗?

0 个答案:

没有答案
相关问题