如何从 CBCharacteristic 中获取准确值?

Posted

技术标签:

【中文标题】如何从 CBCharacteristic 中获取准确值?【英文标题】:How to get exact value from a CBCharacteristic? 【发布时间】:2016-10-26 18:05:14 【问题描述】:
<CBCharacteristic: 0x156d48cf0, UUID = BLevel, properties = 0x18, value = <32353732 380d0a>, notifying = YES>

我想提取 value 字段中的内容。

NSData *data = c.value; // c is of type CBCharacteristic

但不知道是哪种值?

【问题讨论】:

你需要知道NSData是什么意思。可能是字符串、结构、uint32 等。请参见:***.com/questions/38718841/… BLevel 是电池电量吗?您需要进行反向工程或阅读文档(BLE 文档,如果它是“已知”文档,或者设备文档) @Larme,是的,它是“电池电量”。你是它的类型吗? 根据文档:bluetooth.com/specifications/gatt/… 如果它是 UUID 0x2A19,但似乎需要一个 int8。 如何从中获取价值,您能帮忙吗? ***.com/a/23571000/1801544 ? 【参考方案1】:

您可以使用

NSData 转换为 NSString
NSString *str = [[NSString alloc] initWithData:c.value encoding:NSUTF8StringEncoding];

【讨论】:

以上是关于如何从 CBCharacteristic 中获取准确值?的主要内容,如果未能解决你的问题,请参考以下文章

iOS-BLE <CBCharacteristic:未指定“无响应写入”属性 - 忽略无响应写入

将 CBCharacteristic 值转换为字符串

iOS 10.0:使用未声明的类型“CBCharacteristic”

iOS 蓝牙 LE 无法以编程方式获取通知,但可以在其他应用程序中

尝试订阅 CBCharacteristic 时不允许写入错误

订阅来自 CBCharacteristic 的通知不起作用