我知道您可以随时通过CoreLocation扫描iBeacons,但是有可能始终通过CoreBluetooth扫描BLE(非iPhone外围设备)广告数据吗?总而言之,我的意思是,如果我不是一次打开应用程序几天,或者关闭手机并重新打开。
根据我的研究,听起来你可以通过CoreBluetooth在后台进行扫描,但是如果iPhone有太多的关闭,或者如果关闭并打开iPhone,它会关闭,但这可以通过CoreLocation(或通过Apple MFi计划)。
答案 0 :(得分:2)
试试这个
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES], CBCentralManagerScanOptionAllowDuplicatesKey, nil];
[manager scanForPeripheralsWithServices:nil options:options];
这使得didDiscoverPeripheral
回调大约每100毫秒。这包括它看到的每个设备的RSSI。
你也可以在后台扫描。来自Apple Documentation:
指定了蓝牙中央后台模式的应用是 允许在后台扫描。那说,他们必须 通过在中指定它们来显式扫描一个或多个服务 serviceUUIDs参数。