蓝牙低能量背景

时间:2014-09-26 08:11:09

标签: ios bluetooth bluetooth-lowenergy

我正在开发iOS蓝牙LE应用程序。首先,我将IOS(中央)配对我的蓝牙芯片(外围设备)

1)发现外围设备。 2)连接到外围设备。 3)获得服务和特征。 4)能够从特征中读取数据和写入数据。 5)保存外围设备 6)断开与外围设备的连接

当我第二次运行应用程序时,它会自动连接到外围设备,并从特征中写入和读取数据并断开连接。该应用程序在后台运行10分钟。

我想在后台运行此应用。那就是我想调用每6个小时在后台连接,写入和读取值的方法。这可能吗?我的应用程序在后台工作仅10分钟。任何建议都会有很大的帮助。

1 个答案:

答案 0 :(得分:0)

首先,您需要确定添加了:

<key>UIBackgroundModes</key>
<array>
    <string>bluetooth-central</string>
    <string>bluetooth-peripheral</string>
</array>

到您的Info.plist,它将允许您的应用在后台运行。

然而,这将如下工作:它将允许您的应用程序“唤醒”任何蓝牙事件并运行您希望在应用程序获得任何蓝牙活动时触发的方法。

例如:

  • 你可以在后台扫描蓝牙设备,一旦找到适合你的标准的东西就可以运行代码,因为didDiscoverPeripheral会触发(连接/读/写等等)。
  • 您可以连接到设备并订阅特定特征的通知。一旦特征发生变化,您的应用在后台应该会收到通知并且会调用didUpdateValueForCharacteristic回调,所以您可以再次调用方法,仍然在后台运行。
  • 也许你可以想到其他用例。我已经提到过这些场景,让您了解如何使用BTLE在后台工作。

这些方案不应限于10分钟的时间范围。

但是我注意到如果你在后台模式中运行其他东西(例如:一个循环)并且10分钟后你的应用程序可能会被后台杀死,所以即使上面提到的回调也行不通。

所以回答你的6小时问题:如果您的BTLE设备可以每6小时启动一次BLE操作来唤醒你的应用,那么这是可能的。另外,我不确定你是否可以从app(ios)方面开始你的活动。