GATT API变蓝-MI频段2

时间:2018-09-06 07:06:49

标签: bluetooth-lowenergy bluez gatt

我一直在尝试连接MI Band 2手表,并读取心率特征值,但是没有运气。

当我们谈论关贸总协定时,我有点不确定程序是什么。 对于API https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc/gatt-api.txt,我正在考虑使用org.bluez.GattCharacteristic1接口读取值。

我可以连接和配对手表,并获取所有UUID(服务,描述符和特征)。心率测量具有以下信息:

Characteristic
    /org/bluez/hci0/dev_CD_1D_69_25_19_5E/service0027/char0028
    00002a37-0000-1000-8000-00805f9b34fb

我尝试使用bluetoothctl程序读取该值,但收到“不允许”反馈。

使用GATT API读取特征值的过程是什么。

2 个答案:

答案 0 :(得分:1)

您的设备正在使用采用的心率配置文件,因为0x2A37是用于心率测量的特性UUID。我建议您使用BlueZ命令行工具,如下所示:-

1。使用以下命令找到心率特征的句柄:-

gatttool -b 00:11:22:33:44:55 --characteristics

用设备的蓝牙地址替换00:11:22:33:44:55。您基本上想找到包含2a37的uuid,并记下其相应的'char value handle'。

2。使用以下命令找到该句柄的描述符:-

gatttool -b 00:11:22:33:44:55 char-desc --handle=0xXX

其中XX是您之前记下的char值句柄。您应该能够在该句柄上看到几个特征描述符。用uuid 2902记下char句柄。

3-使用以下方法在该句柄上写入“ 0100”来启用通知:-

gatttool -b 00:11:22:33:44:55 --sec-level=high --char-write --handle=0xYYYY --value=0100

在步骤2中记下的CCCD描述符的句柄为0xYYYY。一旦发生这种情况,就应该开始获取指示数据,您可以使用找到的温度数据结构here对其进行解密。

您可以在以下链接中找到有关使用BlueZ命令的更多信息:-

我希望这会有所帮助。

答案 1 :(得分:0)

也许您可以尝试使用shell程序 gatttool 或使用 nRF Connect 之类的应用进行读取。