Android蓝牙LE连接到心率监测器

时间:2014-10-10 12:03:05

标签: java android bluetooth-lowenergy

我是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字节不等。不知道如何处理它们。

1 个答案:

答案 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");

等来调用数据