即使应用程序没有运行,我也可以与奴隶BLE通信吗?

时间:2013-11-25 12:15:03

标签: ios iphone bluetooth-lowenergy core-bluetooth

我正在开发一个与从属BLE设备通信的iOS应用程序。我知道iOS将允许我的应用程序在后台运行以与BLE通信。我怀疑的是,如果附近有任何BLE,有没有办法打开我的应用程序?我的意思是即使我的应用程序没有运行,我可以与BLE沟通吗?与位置服务一样,即,如果应用注册了重要位置更改提醒,则即使应用未运行,应用也会在有重大位置更改时自动启用。

我搜索了很多,但找不到任何有用的文档。非常感谢任何帮助..

1 个答案:

答案 0 :(得分:0)

这里有一些事情,我认为你必须小心术语。让我们首先澄清“不运行”。该应用程序有5种模式:

  1. 前景:应用程序是“实时”并在屏幕上
  2. 背景 - 解锁:应用程序是“实时”但不在屏幕上。屏幕上有另一个应用程序(正面),或者用户可能在主屏幕上,浏览他/她的应用程序等。
  3. 背景 - 锁定:自我解释
  4. 由用户终止 - 仍然在设备上:用户双击主页按钮并向上轻弹您的应用程序(iOS7)以关闭它。
  5. 由系统终止 - 仍在设备上:由于内存压力,应用程序已被操作系统终止(其他应用程序需要内存空间)。
  6. 显然,如果用户已从设备中删除了该应用,则无需讨论。

    在选项4中,应用程序仍在设备上,但在用户重新启动应用程序之前不会重新启动其任何后台服务(BLE,位置更新等)。这是新的iOS7行为。如果用户终止了应用程序,则他/她不希望它运行。

    在选项5中,因为用户尚未终止该应用;操作系统将在收到回调时重新启动应用后台服务。

    为了让应用程序在后台运行,它需要您为其plist添加适当的背景模式,或者只需单击项目(左上角)并转到“功能”并启用“背景模式”和相应的背景模式。在您的情况下:“使用蓝牙LE配件”。

    现在,您似乎正在寻找“扫描”与连接和交换数据,根据我的经验,扫描仅适用于方案1和2以及5.不是3.我已经多次尝试在手机上进行扫描被锁定没有运气。

    现在方式,fitbit等......在后台工作的是app,扫描,发现服务和特征以及应用程序在前台时手机和配件之间的“设置更新”。一旦完成此设置,“感兴趣的价值”更新(心跳等)可能发生在BLE附件和iOS设备之间,在后台(锁定和解锁)。

    希望这有帮助。