我绝对是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/

10-10 23:35