我目前正在开发一款需要我使用蓝牙4.0扫描设备的应用。此时我遇到了一个问题。
当应用在后台运行时,是否可以让应用扫描设备?由于某种原因,该应用程序无法扫描设备。该应用程序在后台运行时未调用didDiscoverPeripheral。但是,一旦建立连接,我的应用就可以从设备接收数据。
为了简化操作,为什么我的应用程序在后台运行时无法扫描设备?
P.S。我确实输入了必需的背景模式 1.App使用CoreBluetooth进行通信 2.App使用CoreBluetooth分享数据
答案 0 :(得分:4)
在后台扫描是一个非常缓慢的过程。 Apple表示它比前景慢55倍。我的经验表明它可能更慢。因此,为了在后台扫描设备,请记住以下内容:
nil
服务。答案 1 :(得分:0)
将服务或数据放入广告包中!如果您希望iPhone更快地发现它,也可以快速设置广告周期。我在前30秒使用20毫秒。 br henrik
答案 2 :(得分:0)
另一个可能是问题的问题是您必须扫描特定服务,例如:
[myCentralManager scanForPeripheralsWithServices:@[serviceUUID] options:nil];
而不是将“with services”参数设为nil。我认为这是一个巨大的问题,在Apple的文档中几乎没有低声说,只在该方法的描述中提到过,而在Core Bluetooth Backgrounding文档中没有提及。