ios bluetooth bluetooth-lowenergy core-bluetooth ios7.1

IOS Core Bluetooth: Obtención de advertencia de API MISUSE



bluetooth-lowenergy core-bluetooth (2)

Por favor use el siguiente código para resolver la advertencia:

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

if (bluetoothPowerOn) { [self.centralManager scanForPeripheralsWithServices:[serviceIDs copy] options:@{CBCentralManagerScanOptionAllowDuplicatesKey:@(NO)}]; } -(void)centralManagerDidUpdateState:(CBCentralManager *)central{ switch (central.state) { case CBManagerStatePoweredOn: { 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; } } }

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

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

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

[manager scanForPeripheralsWithServices:array options:scanOptions];

Entonces, ¿alguien puede decirme por qué recibo este mensaje en la consola?

Hay dispositivos Android bluetooth 4.0 a mi alrededor, pero esta aplicación no los está descubriendo como un dispositivo periférico. Entonces, ¿por qué no está descubriendo los dispositivos bluetooth 4.0 LE con Android como periféricos?


[-CBCentralManagerDelegate centralManagerDidUpdateState:] esperar hasta que se haya llamado al callback [-CBCentralManagerDelegate centralManagerDidUpdateState:] . Y luego, verifique que el estado sea PoweredOn antes de comenzar a buscar periféricos.