我是Android编程和蓝牙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字节不等。不知道如何处理它们。
答案 0 :(得分:0)
上次我使用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");