我目前正在开发一款应用,该应用要求我使用蓝牙 4.0 扫描设备。在这一点上我遇到了一个问题。
当应用程序在后台运行时,是否可以让应用程序扫描设备?由于某种原因,应用程序无法扫描设备。该应用程序在后台运行时未调用 didDiscoverPeripheral。但是,一旦建立连接,我的应用程序就可以从设备接收数据。
为了让事情更简单,为什么我的应用在后台运行时无法扫描设备?
附言我确实输入了所需的背景模式 1.App使用CoreBluetooth进行通信 2.App使用CoreBluetooth共享数据
最佳答案
后台扫描是一个非常缓慢的过程。 Apple 表示它比前台慢 55 倍。我的经验表明它可能会更慢。因此,为了在后台扫描设备,请记住以下几点:
- 确保另一台设备以最大速度(20 毫秒)进行广播,并广播您正在扫描的服务。此答案中有一个示例:https://stackoverflow.com/a/18113505/768935
- 由于扫描速度降低,请为应用留出更多时间来查找设备。
- 确保您使用指定的服务开始扫描。您无法在后台扫描
nil
服务。 - 用于扫描的允许重复选项在后台被忽略。
关于iphone - CoreBluetooth 后台扫描设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13873168/