iOS后台应用能否低功耗采集指定设备的BLE广播数据包?
iOS后台采集BLE广播包相关问题解答
能否开发后台低功耗采集指定设备BLE广播的iOS应用?
可以开发,符合苹果系统规则的前提下完全可以实现后台持续运行、低功耗采集指定设备BLE广播的需求。
授予权限后系统会不会禁止后台运行?
只要符合CoreBluetooth框架的规则,系统不会禁止应用后台运行,具体要求如下:
- 首先需要在项目配置中开启
Uses Bluetooth LE accessories后台模式,这是后台扫描BLE设备的基础前提。 - 后台扫描仅支持采集你预先指定服务UUID的设备广播:你需要在调用扫描接口时通过
CBCentralManagerScanOptionSolicitedServiceUUIDsKey参数传入目标设备的服务UUID,后台模式下不支持无差别扫描所有设备的广播包,未指定UUID的扫描会在应用退后台10秒左右被系统强制终止。 - 权限方面需要用户授予蓝牙「始终允许」权限,如果仅授予「使用App期间允许」,退后台后扫描也会被暂停。
- 符合规则的BLE扫描本身由系统蓝牙模块统一调度,不需要应用持续唤醒,功耗极低,几乎不会产生额外的电量消耗。
注意:如果通过其他后台模式(比如位置持续更新、后台音频等)保活实现无差别扫描,这类应用不符合苹果审核规则,基本无法通过App Store上架,同时会大幅提升应用功耗。
内容的提问来源于stack exchange,提问作者Krishna Menon
相关产品推荐
相关产品推荐

