我正在开发一个与从属BLE设备通信的iOS应用程序。我知道iOS将允许我的应用程序在后台运行以与BLE通信。我怀疑的是,如果附近有任何BLE,有没有办法打开我的应用程序?我的意思是即使我的应用程序没有运行,我可以与BLE沟通吗?与位置服务一样,即,如果应用注册了重要位置更改提醒,则即使应用未运行,应用也会在有重大位置更改时自动启用。
我搜索了很多,但找不到任何有用的文档。非常感谢任何帮助..
答案 0 :(得分:0)
这里有一些事情,我认为你必须小心术语。让我们首先澄清“不运行”。该应用程序有5种模式:
显然,如果用户已从设备中删除了该应用,则无需讨论。
在选项4中,应用程序仍在设备上,但在用户重新启动应用程序之前不会重新启动其任何后台服务(BLE,位置更新等)。这是新的iOS7行为。如果用户终止了应用程序,则他/她不希望它运行。
在选项5中,因为用户尚未终止该应用;操作系统将在收到回调时重新启动应用后台服务。
为了让应用程序在后台运行,它需要您为其plist添加适当的背景模式,或者只需单击项目(左上角)并转到“功能”并启用“背景模式”和相应的背景模式。在您的情况下:“使用蓝牙LE配件”。
现在,您似乎正在寻找“扫描”与连接和交换数据,根据我的经验,扫描仅适用于方案1和2以及5.不是3.我已经多次尝试在手机上进行扫描被锁定没有运气。
现在方式,fitbit等......在后台工作的是app,扫描,发现服务和特征以及应用程序在前台时手机和配件之间的“设置更新”。一旦完成此设置,“感兴趣的价值”更新(心跳等)可能发生在BLE附件和iOS设备之间,在后台(锁定和解锁)。
希望这有帮助。