iOS – CoreBluetooth didDiscoverPeripheral没有被调用

我已经在Xcode 6中制作了一个非常简单的iOS应用程序来试用CoreBluetooth并与我的Polar H6心率监视器进行通信。 出于某种原因,didDiscoverPeripheral方法未被调用。

我已经在StackOverflow上发现了以下类似的问题,但是你可能有点不同,或者对我没有回答:

  • corebluetooth-diddiscoverperipheral -不存在所谓的function于迅速
  • 未工作,号召性centralmanager-diddiscoverperipheral-advertisementdata
  • diddiscoverperipheral-代表法-是-不叫

我在viewDidLoad中的代码:

NSArray *services = @[[CBUUID UUIDWithString:HRM_HEART_RATE_SERVICE_UUID]]; CBCentralManager *centralManager = [[CBCentralManager alloc] initWithDelegate:self queue:nil]; [centralManager scanForPeripheralsWithServices:services options:nil]; self.centralManager = centralManager; 

方法centralManagerDidUpdateState被调用,它告诉我状态等于CBCentralManagerStatePoweredOndidDiscoverPeripheral方法永远不会被调用,即使我把nil传递给scanForPeripheralsWithServices方法。

在app store中,我已经下载了一个名为LightBlue的应用程序。 它是一个非常简单的应用程序来testing任何使用蓝牙4.0 LowEnergy的设备。 它扫描外围设备,并显示有关设备及其服务的详细信息。 LightBlue应用程序看到我的HeartRate显示器,而我自己的小应用程序不..

有没有人有任何提示或线索如何前进呢?

(我正在使用iOS 8的Xcode 6和iPhone 6)

我正在使用Swift,它看起来像蓝牙队列需要使用主队列

 myCentralManager = CBCentralManager(delegate: self, queue: dispatch_get_main_queue()) 

这是在客观的C.

 myCentralManager = [[CBCentralManager alloc] initWithDelegate:self queue:dispatch_get_main_queue()];