如何在 swift4 中获得蓝牙外设的特征值?

Posted

技术标签:

【中文标题】如何在 swift4 中获得蓝牙外设的特征值?【英文标题】:How can i get Characteristic value in bluetooth peripheral in swift4? 【发布时间】:2018-12-05 06:32:47 【问题描述】:
  <CBCharacteristic: 0x281bc6100, UUID = FFF1, properties = 0x10, value = <500c0b62 00008f2c 10223344 55660000 00000000>, notifying = NO>

我想要这个值“”

谁能帮帮我?

【问题讨论】:

let value = myCharacteristic.value。现在,应该是什么“”?它应该是什么意思?那是“文字”吗?您发送的自定义结构?如果没有外围设备的规格信息,我们无法猜测如何解析它。 我想从周边打印这个值 。我怎样才能得到这个值?。 let value = myCharacteristic.value。但是&lt;500c0b62 00008f2c 10223344 55660000 00000000&gt;更多的是调试值,你可以用print("\(value as NSData)")得到它,但是打印十六进制数据似乎很奇怪。您可以检查 ***.com/questions/39075043/… 的十六进制表示。 谢谢...你让我受益匪浅。 【参考方案1】:

试试这个

if(characteristic.value != nil)
            if let ASCIIstring = NSString(data: characteristic.value!, encoding: String.Encoding.utf8.rawValue) 
                characteristicASCIIValue = ASCIIstring
                print("Value Recieved: \((characteristicASCIIValue as String))")

            
        

【讨论】:

请不要先if(characteristic.value != nil)characteristic.value!:而是直接用“if let”安全地解包,这样会更好更快捷。

以上是关于如何在 swift4 中获得蓝牙外设的特征值?的主要内容,如果未能解决你的问题,请参考以下文章

如何在蓝牙服务器端“读取特征值”捕获客户端请求?

iOS 蓝牙连接获取MAC地址的方法

如何从 Swift 中的 BLE 外设特征写入回调中提取数据?

如何在 android 中将特征写入 BLE GATT 服务器?

使用核心蓝牙 ios 扫描外围设备时如何更改特征顺序

CBP 外设名称。编码问题