使用scanForPeripheralsWithServices:options:
启动核心蓝牙扫描并在我的应用处于活动状态的整个时间内保持运行状态是否可以?我试图找出它是否:
一个。淹死了。
B中。电池寿命不佳。
℃。创造热量。
d。有任何我可能不知道的负面影响。
答案 0 :(得分:0)
CoreBluetooth实际上具有支持这种行为的功能。 CB的设计充分考虑了您列出的所有这些内容,Apple完美地将CoreBluetooth与State Preservation and Restoration(https://developer.apple.com/library/archive/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/CoreBluetoothBackgroundProcessingForIOSApps/PerformingTasksWhileYourAppIsInTheBackground.html)集成在一起,使您可以编写运行数天甚至数周的应用程序。
从本质上讲,即使操作系统决定关闭应用程序以释放内存或设备用尽电源并死亡(重启设备后),您仍然可以执行一系列与BLE相关的活动,包括扫描并连接到BLE外设。
我自己实现了这一点,但仍然对其效果感到惊讶。在Android上复制相同的性能是可能的,但这是一场噩梦。在iOS上“效果很好”。