如何访问Galaxy S5心率传感器



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

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

谢谢。

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

传感器扩展SDK需要从谷歌安卓不支持的传感器获取原始数据,该页面声明:

传感器扩展SDK有以下限制:

  • HRM传感器IR/RED信号
    • 要求使用Android 5.0(Lollipop API 21级)或更高版本的设备
    • Galaxy S5和Galaxy S5mini被排除在外
    • 仅支持带有HRM传感器的三星设备

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

访问并启用红外线:

  1. 在清单中使用

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

  2. 在活动中实现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. 检查日志中的结果;)

三星发布了一个名为SensorExtension的SDK。你必须申请,他们会给你发一封带有zip文件的电子邮件。

http://developer.samsung.com/galaxy#sensor-扩展

SensorManager.getDefaultSensor(Sensor.TYPE_HEART_RATE)

工作良好。

但是

此传感器需要权限android.permission.BODY_SENSORS.ItSensorManager.getSensorsList也不会返回SensorManager.getDefaultSensor(如果应用程序没有)准许

(来自文档)

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

相关内容

  • 没有找到相关文章

最新更新