当应用打开时,我能够将BLE设备与我的应用配对/连接。但是当我的应用程序进入后台/挂起模式时,我无法保持连接状态。 是否可以保持连接活动并获得有关设备断开连接事件的通知?
答案 0 :(得分:1)
可以。
首先,您可以扫描外围设备并在后台连接它们,只要它们公开至少一项服务即可(在启动scan命令时必须指出此服务)。
您必须通过选中Uses Bluetooth LE accessories
在目标功能中指定它。
要检测蓝牙断开连接,您只需实现CBCentralManagerDelegate
方法func centralManager(CBCentralManager, didDisconnectPeripheral: CBPeripheral, error: Error?)
。
只要外围设备不需要保持活动信号,连接就会在后台保持活动状态,如果您需要在后台进行某些操作,则需要进行Uses Bluetooth LE accessories
检查。
为了简化使用BLE的工作,建议您检查一下library。
答案 1 :(得分:1)
用于在悬浮/后台模式下支持Core-Bluetooth。请为您的应用程序提供后台支持。
转到项目->目标->功能->启用后台模式->选择“使用Bluetooth LE附件”。
但是iOS系统可能会随时杀死您的后台应用程序,以释放前台应用程序的内存。
要获取已连接/已断开事件,请使用以下代码行。
central.connect(peripheral, options: [CBConnectPeripheralOptionNotifyOnConnectionKey:true, CBConnectPeripheralOptionNotifyOnDisconnectionKey: true])
答案 2 :(得分:0)
对于后台应用程序有限制。并非所有功能都可以在后台使用。然后,使用不合理的后台功能将应用程序发送给审核人,您将失败。
Here,您将找到更多描述。 May be your case是处于“充当蓝牙LE附件”模式的“从外部附件接收定期更新的应用”。
在google中,您还将找到很多信息。