CoreBluetooth y los dispositivos de baja energía

Por fin Apple nos brinda la oportunidad a los desarrolladores de sacar algún partido a nuestro bluetooth, pero sólo para usuario de iPhone4S, los cuales tienen la posibilidad de conectar con dispositivos de baja energía (LE).

Además también podemos conectar con dispositivos que no contengan éste tipo de bluetooth gracias a el teléfono lleva incorporado un conmutador que hace que podamos conectar con dispositvos que contienen bluetooth que no es del tipo LE.

Para jugar con ello tenemos el framework CoreBluetooth, en el cual se debe implementar dos protocolos CBCentralManagerDelegate y CBPeripheralDelegate, se utilizan para conectar/desconectar con el dispositvo y manejar la respuesta respectivamente.

Al implementarlos nos damos cuenta de que hay que implementar bastantes metodos delegados, para simplificar la tarea podemos utilizar un singleton, en nuestro caso la clase la hemos llamado BluetoothMe.

Tambien podemos construir un bloque para poder manejar la respuesta de conexión/desconexión del dispositivo bluetooth:

[instance hardwareResponse:^(CBPeripheral *peripheral, BLUETOOTH_STATUS status, NSError *error) {

if (status == BLUETOOTH_STATUS_CONNECTED)
{
NSLog(@»connected!»);
}
else if (status == BLUETOOTH_STATUS_FAIL_TO_CONNECT)
{
NSLog(@»fail to connect!»);
}
else
{
NSLog(@»disconnected!»);
}

NSLog(@»CBUUID: %@, ERROR: %@», (NSString *)peripheral.UUID, error.localizedDescription);
}];

Por otra parte podemos implementar los trés métodos delegados para manejar la respuesta del dispositivo bluetooth:

– (void)peripheralDidWriteChracteristic:(CBCharacteristic *)characteristic
withPeripheral:(CBPeripheral *)peripheral
withError:(NSError *)error;

– (void)peripheralDidReadChracteristic:(CBCharacteristic *)characteristic
withPeripheral:(CBPeripheral *)peripheral
withError:(NSError *)error;

– (void)hardwareDidNotifyBehaviourOnCharacteristic:(CBCharacteristic *)characteristic
withPeripheral:(CBPeripheral *)peripheral
error:(NSError *)error;

Para más información no dudes en consultar el ejemplo de prueba

One Comment

Deja una respuesta