在Samsung's programming guide(第77-81页)中,有关如何使用S Health Service SDK设置和获取心率信息的参考。但是,我希望直接访问Galaxy S5的心率传感器,就像您可以访问加速度计,陀螺仪,光传感器以及其他传感器一样。我找到了this example for the samsung gear live,但我找不到Galaxy S5的任何例子。
是否可以直接访问Galaxy S5的心率传感器?有没有人有关于如何做的代码示例?
谢谢。
您无法从Samsung Galaxy S5获取原始心率监测数据。
传感器扩展SDK需要从Google Android不支持的传感器获取原始数据,this page声明:
Sensor Extension SDK具有以下限制:
使用SensorManager.getDefaultSensor(65562)
直接访问HRM传感器。
要访问和启用红外灯:
public void enableHeartRate(){
SensorManager mSensorManager = ((SensorManager)getSystemService(SENSOR_SERVICE));
Sensor mHeartRateSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_HEART_RATE);
mSensorManager.registerListener(this,mHeartRateSensor, SensorManager.SENSOR_DELAY_NORMAL);
}
@Override
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() == Sensor.TYPE_HEART_RATE) {
String msg = "" + (int)event.values[0];
Log.d(TAG, msg);
}else{
Log.d(TAG, "Unknown sensor type");
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int i) {
}
三星发布了名为SensorExtension的SDK。您必须申请,他们会发送一封包含zip文件的电子邮件。
SensorManager.getDefaultSensor(Sensor.TYPE_HEART_RATE)
效果很好。
但
此传感器需要权限android.permission.BODY_SENSORS。如果应用程序没有此权限,SensorManager.getSensorsList和SensorManager.getDefaultSensor将不会返回它。
(来自文档)
因此,如果您的读者尝试了getDefaultSensor但没有成功,这很可能就是错误。