我绝对是android编程和Bluetooth LE的新手。所以请耐心;)
我有一些示例程序,但是很难理解。
我当前正在开发一个程序,该程序应显示蓝牙LE从胸带(Zephyr HXM2)
接收到的心率。
我设法建立了连接并读取了诸如序列号字符串之类的特征。
但是我确实遇到问题的是获取心率测量值(UUID = 0x2A37)
。
所以我的程序实际执行的是:
启用描述符(UUID =00002902-0000-1000-8000-00805f9b34fb)
的通知
descriptor.setValue(BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE);
mBluetoothGatt.writeDescriptor(descriptor);
然后我等待onCharacteristicChanged方法并执行getvalue函数。
BluetoothGattCharacteristic.getValue()
首先,我不知道这是否正确,其次,我获取数据,但它的大小为2,4和6个字节。不知道该怎么办。
最佳答案
上一次我使用Zephyr心率监测器时,我只是设置了一些常数:
private static final int HEART_RATE = 0x100;
private static final int RESPIRATION_RATE = 0x101;
private static final int SKIN_TEMPERATURE = 0x102;
private static final int POSTURE = 0x103;
private static final int PEAK_ACCLERATION = 0x104;
然后使用switch语句创建消息处理程序:
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case HEART_RATE:
// do stuff
break;
case RESPIRATION_RATE:
// do stuff
break;
}
}
然后通过诸如
msg.getData().getString("RespirationRate");
和msg.getData().getString("SkinTemperature");
的调用获取数据关于java - Android蓝牙LE连接至心率监测器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26299016/