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

Java 如何访问Galaxy S5心率传感器?,java,android,heartbeat,samsung-mobile-sdk,Java,Android,Heartbeat,Samsung Mobile Sdk,在(第77-81页)中,有一个关于如何使用S Health Service SDK设置和获取心率信息的参考。然而,我希望直接访问Galaxy S5的心率传感器,就像访问加速计、陀螺仪、光传感器和其他传感器一样。 我找到了,但我找不到任何星系S5的例子 是否可以直接访问Galaxy S5的心率传感器?有没有人有关于如何做的代码示例 谢谢。使用SensorManager.getDefaultSensor(65562)直接访问HRM传感器。三星发布了一个名为SensorExtension的SDK。你必

在(第77-81页)中,有一个关于如何使用S Health Service SDK设置和获取心率信息的参考。然而,我希望直接访问Galaxy S5的心率传感器,就像访问加速计、陀螺仪、光传感器和其他传感器一样。 我找到了,但我找不到任何星系S5的例子

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


谢谢。

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

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

效果很好

但是

此传感器需要权限android.permission.BODY\u传感器。信息技术 SensorManager不会返回。getSensorsList或 SensorManager.getDefaultSensor(如果应用程序没有此功能) 允许

(来自文件)


因此,如果您尝试getDefaultSensor但未成功,则可能是错误。

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

传感器扩展SDK需要从Google Android不支持的传感器获取原始数据,并声明:

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

  • HRM传感器红外/红色信号
    • 需要具有Android 5.0(棒棒糖API级别21)或更高版本的设备
    • 排除了星系S5和星系S5mini
    • 仅支持带有HRM传感器的三星设备

要访问并启用红外光:

  • 在舱单上使用

    使用权限android:name=“android.permission.BODY\u SENSORS”/>

  • 在活动中实现SensorEventListener

  • 要启用红色红外光,请使用以下代码:

     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) {
    
    } 
    
  • 检查日志以了解结果 ;)


  • 这可能会帮助你:谢谢你的回答。我已经检查了该论坛线程,但它只提供了如何从S Health Service SDK获取心率信息的信息。我需要直接实时访问心率传感器,就像使用加速计、陀螺仪、光传感器和其他传感器一样。你链接的问题中的代码有什么输出?(显示所有传感器的那一个。)您是否按照建议包含了
    BODY\u sensors
    权限?我没有galaxy s5。我只是想知道galaxy gear使用的相同代码是否也可以用于访问galaxy s5心率传感器?谢谢。为什么你会期望它不起作用呢?
     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) {
    
    }