我有一个iOS应用程序(swift)对自定义BLE设备做出反应。设备仅在单击时发送消息5秒钟。 该应用程序扫描该服务,但未连接到该设备。 当应用程序位于前台或后台时,它工作正常,但是当手机被锁定时(电源按钮被按下)则不行。 一切正常(iOS 10之前)。
代码段:
// Init centralManager
centralManager = CBCentralManager(delegate: self, queue: dispatch_get_global_queue(QOS_CLASS_BACKGROUND, 0))
...
// In centralManagerDidUpdateState
let arrayOfServices: [CBUUID] = [CBUUID(string:"0000****-0000-1000-8000-0080********")]
self.centralManager?.scanForPeripheralsWithServices(arrayOfServices, options: [CBCentralManagerScanOptionAllowDuplicatesKey: false])
我启用了后台模式:使用蓝牙LE配件。并且在我的.plist UIBackgroundModes中有蓝牙中心。
我已经阅读了大多数处理问题的stackoverflow帖子,如果他们的解决方案适合我,我会尝试。在Apple文档中也没有找到任何有用的问题。 我试过例如:
CBCentralManager队列为nil / mainqueue
scanForPeripheralsWithServices(零和不同选项)
任何人都知道这个问题的解决方法,所以我可以像以前一样工作吗?或者知道iOS 10中的一个变化阻止了它的工作?