CoreBluetooth扫描检测时间在MacOS上不可靠

时间:2017-11-15 17:42:08

标签: macos core-bluetooth

在MacOS上扫描BluetoothLE制造商广告时,发现回调的频率远低于iOS。对于10 Hz的广播发射器,iOS每秒可获得近10次发现回调。在MacOS上,通常每秒看到1-3个回调,但有时回调之间可能会有很多秒 - 有几次我在检测之间测量超过90秒!下面的图表显示了大约两小时的测试运行中发现之间的秒数。

为什么MacOS上的发现时间与iOS相比无法预测?有没有办法让回调更可靠?

我在MacBook Pro(Retina,15英寸,2014年中)的macOS Sierra 10.12.6上录制了这些数据,但我听到同事们抱怨新MacBook上存在类似的不可靠性。

centralManager = CBCentralManager(delegate: self, 
                                  queue: DispatchQueue.global(qos: .default))
centralManager.scanForPeripherals(withServices: nil, 
                                  options: [CBCentralManagerScanOptionAllowDuplicatesKey: true])

...

func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber) {
            let secsSinceDetection = Date().timeIntervalSince(self.lastDetectionTime)
            lastDetectionTime = Date()
            NSLog("LDT: \(secsSinceDetection))")
}

enter image description here

0 个答案:

没有答案