4

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

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

谢谢你。

4

5 回答 5

1

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

于 2014-11-02T08:36:27.683 回答
1

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

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

Sensor Extension SDK 有以下限制:

  • HRM 传感器 IR/RED 信号
    • 需要具有 Android 5.0(Lollipop API 级别 21)或更高版本的设备。
    • Galaxy S5和 Galaxy S5mini除外
    • 仅由带 HRM 传感器的三星设备支持。
于 2017-11-16T06:59:34.953 回答
1

要访问和启用红外线:

  1. 在清单中使用

    使用权限 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. 检查日志以获取结果;)

于 2018-08-30T08:38:37.473 回答
0

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

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

于 2015-05-08T23:29:31.467 回答
0
SensorManager.getDefaultSensor(Sensor.TYPE_HEART_RATE)

效果很好。

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

(来自文档)

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

于 2016-12-04T18:46:38.923 回答