让核心蓝牙扫描永远运行可以吗?



是否可以使用 scanForPeripheralsWithServices:options: 启动核心蓝牙扫描,并在应用程序处于活动状态的整个过程中保持运行?我试图弄清楚它是否:

A. 皱眉。

B. 对电池寿命不利。

C.产生热量。

D.有任何我可能不知道的负面影响。

CoreBluetooth 实际上具有支持此类行为的功能。CB的设计考虑到了您列出的所有这些内容,Apple出色地将CoreBluetooth与状态保存和恢复(https://developer.apple.com/library/archive/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/CoreBluetoothBackgroundProcessingForIOSApps/PerformingTasksWhileYourAppIsInTheBackground.html)集成在一起,使您可以编写运行数天甚至数周的应用程序。

本质上,即使操作系统决定关闭应用程序以释放内存或设备耗尽电源并死亡(重新启动设备后),您仍然可以执行一组与BLE相关的活动,包括扫描和连接到BLE外围设备。

我自己已经实现了这个,并且仍然对它的效果感到惊讶。在Android上复制相同的性能是可能的,但一直是一场噩梦;在 iOS 上"它只是工作"。

最新更新