如何访问Galaxy S5心率传感器?

在Samsung的编程指南 (第77-81页)中,有关如何使用S Health Service SDK设置和获取心率信息的参考。 但是,我希望直接访问Galaxy S5的心率传感器,就像您可以访问加速度计,陀螺仪,光传感器以及其他传感器一样。 我为三星齿轮现场发现了这个例子 ,但我找不到任何关于Galaxy S5的例子。

是否可以直接访问Galaxy S5的心率传感器? 有没有人有关于如何做的代码示例?

谢谢。

您无法从Samsung Galaxy S5获取原始心率监测数据。

需要传感器扩展SDK才能从Google Android不支持的传感器获取原始数据, 此页面指出:

Sensor Extension SDK具有以下限制:

  • HRM传感器IR / RED信号
    • 需要安装Android 5.0(Lollipop API等级21)或更高版本的设备。
    • Galaxy S5和Galaxy S5mini不包括在内
    • 仅支持具有HRM传感器的三星设备。

使用SensorManager.getDefaultSensor(65562)直接访问HRM传感器。

三星发布了名为SensorExtension的SDK。 您必须申请,他们会向您发送一封包含zip文件的电子邮件。

http://developer.samsung.com/galaxy#sensor-extension

 SensorManager.getDefaultSensor(Sensor.TYPE_HEART_RATE) 

效果很好。

此传感器需要权限android.permission.BODY_SENSORS。 如果应用程序没有此权限,SensorManager.getSensorsList和SensorManager.getDefaultSensor将不会返回它。

(来自文档)

因此,如果您的读者尝试了getDefaultSensor但没有成功,这很可能就是错误。

要访问和启用红外灯:

  1. 在Manifest使用

    使用权限android:name =“android.permission.BODY_SENSORS”/>

  2. 在Activity上实现SensorEventListener

  3. 要启用红外红外灯使用代码:

      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) { } 
  4. 检查日志结果;)