versiones para descargar apple ios xcode ios8 bluetooth-lowenergy core-bluetooth

para - iOS-No se ha llamado CoreBluetooth didDiscoverPeripheral



ios versiones (1)

He creado una aplicación de iOS muy simple en Xcode 6 para probar CoreBluetooth y comunicarme con mi monitor de frecuencia cardíaca Polar H6. Por alguna razón, el método didDiscoverPeripheral no se está llamando.

He encontrado las siguientes preguntas similares en StackOverflow pero las tuyas son un poco diferentes o realmente no me responden:

Mi código en 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 está centralManagerDidUpdateState método centralManagerDidUpdateState y me dice que el estado es igual a CBCentralManagerStatePoweredOn . El método didDiscoverPeripheral nunca se llama, ni siquiera cuando paso nil al método scanForPeripheralsWithServices .

Dentro de la tienda de aplicaciones he descargado una aplicación llamada LightBlue. Es una aplicación muy simple para probar cualquier dispositivo que utilice Bluetooth 4.0 LowEnergy. Escanea en busca de periféricos y muestra información detallada sobre los dispositivos y sus servicios. La aplicación LightBlue sí ve mi monitor HeartRate, mientras que mi propia pequeña aplicación no ...

¿Alguien tiene algún consejo o pistas sobre cómo seguir adelante con esto?

(Estoy usando Xcode 6 y y iPhone 6 con iOS 8)


Estoy usando Swift, y parece que la cola Bluetooth debe estar usando la cola principal

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

Aquí está en el objetivo C

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