是否可以让CoreBluetooth始终开启和扫描?

时间:2015-10-12 18:33:24

标签: ios iphone core-location core-bluetooth

我知道您可以随时通过CoreLocation扫描iBeacons,但是有可能始终通过CoreBluetooth扫描BLE(非iPhone外围设备)广告数据吗?总而言之,我的意思是,如果我不是一次打开应用程序几天,或者关闭手机并重新打开。

根据我的研究,听起来你可以通过CoreBluetooth在后台进行扫描,但是如果iPhone有太多的关闭,或者如果关闭并打开iPhone,它会关闭,但这可以通过CoreLocation(或通过Apple MFi计划)。

1 个答案:

答案 0 :(得分:2)

试试这个

NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES], CBCentralManagerScanOptionAllowDuplicatesKey, nil];
[manager scanForPeripheralsWithServices:nil options:options];

这使得didDiscoverPeripheral回调大约每100毫秒。这包括它看到的每个设备的RSSI。

你也可以在后台扫描。来自Apple Documentation

  

指定了蓝牙中央后台模式的应用是   允许在后台扫描。那说,他们必须   通过在中指定它们来显式扫描一个或多个服务   serviceUUIDs参数。