2014-10-10 66 views
1

我绝对是新的android编程和蓝牙LE。所以请耐心等待) 我有一些示例程序,但它们很难理解。 我目前正在研究一个程序,它应该显示心率,由蓝牙LE从胸带(Zephyr HXM2)接收。 我设法获得连接并读取序列号字符串等特征。 但我确实有问题的地方在于心率测量(UUID = 0x2A37)Android的蓝牙LE连接心率监测器

那么我的程序实际上做的是:

使描述(UUID =00002902-0000-1000-8000-00805f9b34fb)

descriptor.setValue(BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE); 
mBluetoothGatt.writeDescriptor(descriptor); 

然后我等待onCharacteristicChanged方法和做getValue函数的通知。

BluetoothGattCharacteristic.getValue() 

首先我不知道这是否是正确的方法,其次我得到的数据,但它从2,4和6字节变化。不知道该怎么办。

+2

你看过Zephyr HXM SDK吗?去设备的设计者得到协议.. – 2014-10-10 12:13:09

回答

0

上次我与和风心脏监测仪工作,我只是设置一些常量:

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