IOS Core Bluetooth: Cómo get el API ADVERTENCIA POR MAL USO

Estoy escribiendo una aplicación de testing en iOS 7 con Core Bluetooth API. Cuando estoy probando la aplicación, descubrí que recibo el siguiente post de advertencia:

2014-04-28 15:52:09.400 TestBluetooth[626:60b] CoreBluetooth[API MISUSE] can only accept commands while in the powenetworking on state

Más tarde, depuré la aplicación y encontré que, la advertencia viene de la siguiente línea de código:

[manager scanForPeripheralsWithServices:array options:scanOptions];

Entonces, ¿alguien puede decirme por qué recibo este post en la console?

Hay dispositivos Android bluetooth 4.0 alnetworkingedor de mí, pero esta aplicación no los está descubriendo como un dispositivo periférico. Entonces, ¿por qué no se descubre dispositivos con bluetooth 4.0 LE Android como periféricos?

Debe esperar hasta que se haya llamado a la callback [-CBCentralManagerDelegate centralManagerDidUpdateState:], y luego verificar que el estado esté encendido, antes de comenzar a escanear los periféricos.

Utilice el siguiente código para resolver la advertencia:

(Puede hacer reference al código en https://github.com/luoxubin/BlueTooth4.0 )

 if (bluetoothPowerOn) { //new code [self.centralManager scanForPeripheralsWithServices:[serviceIDs copy] options:@{CBCentralManagerScanOptionAllowDuplicatesKey:@(NO)}]; } //new code -(void)centralManagerDidUpdateState:(CBCentralManager *)central{ switch (central.state) { case CBManagerStatePowenetworkingOn: { bluetoothPowerOn = YES; //new code [self start]; break; } default: { bluetoothPowerOn = NO; //new code [self stopScan:[NSError hardwareStatusErrorWithMessage:@"Cannot open Bluetooth, please check the setting." hardwareStatus:central.state]]; break; } } }