我已经开发了一款应用程序,通过蓝牙通知从服务器种类的蓝牙低能量HRM(心率监测器)读取心率。 我已经在应用程序的“后台模式”中添加了“使用CoreBluetooth进行应用程序通信”。 当应用程序处于前台时它可以正常工作,但当应用程序处于后台时,其中一个心率监视器总是在服务器分钟内与应用程序断开连接。
所以我调试了应用程序并发现,这种HRM始终是不规则的推送通知。通知之间的间隔是1秒到20秒。 我知道当应用程序处于后台时,如果蓝牙通知之间的时间过长,iOS将停止蓝牙连接。
所以我的问题是:当应用程序处于后台时,是否可以保持连接? 重新连接是解决我问题的唯一方法吗?
答案 0 :(得分:1)
检测断开连接并重新连接到外围设备将使您的应用程序更加强大,因为它将处理外围设备超出范围的情况,然后在您看到的情况下返回。
当外围设备断开连接时,您的centralManager将会调用didDisconnectPeripheral方法。在此方法中,您可以再次调用connectPeripheral:options以重新建立连接。如果设备仍然在范围内,或者稍后设备重新进入范围,iOS将立即执行此操作。
一旦调用了centralManager:didConnectPeripheral方法,就可以重新建立特征监控。
编辑说明您可以立即调用connectPeripheral