didDiscoverPeripheral调用很慢

时间:2016-06-09 15:37:48

标签: ios swift macos bluetooth-lowenergy

我对 Mac OS X 中的CoreBluetooth编程有疑问。我想在这里找到一些BLE信标。当我在我的iPhone上执行类似的代码时,它看起来工作得很好,但是当我在我的Mac上尝试这个时,它似乎只会每两秒左右通知附近的信标(甚至更多,但至少2秒)。信标每500毫秒发信号,所以我希望每隔500毫秒就会收到通知。

是否有人知道如何通过报告信标来告诉Mac OS更严格?

我必须说我对Swift很新,因此所有关于风格的评论也会受到赞赏。

import Foundation
import CoreBluetooth

class CentralManagerDelegate : NSObject, CBCentralManagerDelegate {
    func centralManagerDidUpdateState(central: CBCentralManager) {
        if central.state == .PoweredOn {
            central.scanForPeripheralsWithServices(nil, options: [CBCentralManagerScanOptionAllowDuplicatesKey : "YES"])
            print("Started scanning")
        }
        else {
            central.stopScan()
        }

    }
    func centralManager(central: CBCentralManager, didDiscoverPeripheral peripheral: CBPeripheral, advertisementData: [String : AnyObject], RSSI: NSNumber) {
        print("Beacon found with RSSI: " + RSSI.stringValue);
    }
}

var _centralManagerDelegate = CentralManagerDelegate()
var _centralManager = CBCentralManager(delegate: _centralManagerDelegate, queue: dispatch_get_main_queue())

while true {
    dispatch_main()
}

0 个答案:

没有答案