我是 iOS 开发新手,正在研究适用于 IOS 的低功耗蓝牙(BLE,蓝牙 4.0)。
我想知道如何在 IOS 7 上使用 Immediate Alert Service 。
我可以从 BLE 设备 扫描、连接和发现服务 。
接下来是连接到Immediate alert Service 并将警报级别的特征 写入BLE设备 .
我已经定义了 Immediate alert Service 和 Alert level 的 UUID,如下代码所示。
#define IMMEDIATE_ALERT_UUID @"00001802-0000-1000-8000-00805f9b34fb"
#define ALERT_LEVEL_UUID @"00002a06-0000-1000-8000-00805f9b34fb"
以下代码是关于连接到即时警报服务 。
[peripheral discoverServices[[CBUUID UUIDWithString:IMMEDIATE_ALERT_UUID]]];
连接IMMEDIATE_ALERT_UUID 后的警报级别特征 的代码如下关注。
- (void)peripheralCBPeripheral *)peripheral didDiscoverServicesNSError *)error
{
for (CBService *service in peripheral.services) {
[peripheral discoverCharacteristics[[CBUUID UUIDWithString:ALERT_LEVEL_UUID]] forService:service];
}
}
订阅警报级别特征 。
- (void)peripheralCBPeripheral *)peripheral didDiscoverCharacteristicsForServiceCBService *)service errorNSError *)error
{
if ([characteristic.UUID isEqual:[CBUUID UUIDWithString:ALERT_LEVEL_UUID]]) {
// If it is, subscribe to it
[peripheral setNotifyValue:YES forCharacteristic:characteristic];
}
}
但是如何将警报级别写入警报级别的特征 ??
提前致谢。
Best Answer-推荐答案 strong>
-(void)peripheralCBPeripheral *)peripheral didDiscoverCharacteristicsForServiceCBService *)service errorNSError *)error{
if ([characteristic.UUID isEqual:[CBUUID UUIDWithString:ALERT_LEVEL_UUID]]){
uint8_t val = 0 //enter the value which you want to write.
NSData* valData = [NSData dataWithBytesvoid*)&val length:sizeof(val)];
[peripheral writeValue:valData forCharacteristic:characteristictype:CBCharacteristicWriteWithResponse];
}
放参数CBCharacteristicWriteWithResponse 会调用CBPeripheralDelegate 方法
- (void)peripheralCBPeripheral *)peripheral didWriteValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error{
}
关于ios - 如何在IOS 7中将警报级别写入警报级别的特征?,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/23148548/
|