How to access Galaxy S5 heart rate sensor?

2019-04-02 13:57发布

In the Samsung's programming guide (pages 77 - 81) there is a reference on how to set and get the heart rate information using the S Health Service SDK. However, I was looking to directly access the Galaxy S5's heart rate sensor, the same way you are able to access the accelerometer, gyroscope, light sensor, among other sensors. I found this example for the samsung gear live, but I cannot find any example for Galaxy S5.

Is it possible to directly access the Galaxy S5's heart rate sensor? Does anyone has a code example on how to do it?

Thank you.

5条回答
我命由我不由天
2楼-- · 2019-04-02 14:33
SensorManager.getDefaultSensor(Sensor.TYPE_HEART_RATE)

works well.

But

This sensor requires permission android.permission.BODY_SENSORS. It will not be returned by SensorManager.getSensorsList nor SensorManager.getDefaultSensor if the application doesn't have this permission.

(from the documentation)

So if you readers tried getDefaultSensor without success, this is likely to be the error.

查看更多
等我变得足够好
3楼-- · 2019-04-02 14:35

To access and enable infra red light:

  1. Use at Manifest

    uses permission android:name="android.permission.BODY_SENSORS"/>

  2. implement SensorEventListener at Activity

  3. To enable red infrared light use code:

     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. Check Log for results ;)

查看更多
Summer. ? 凉城
4楼-- · 2019-04-02 14:43

Samsung has released an SDK called SensorExtension. You must apply for it and they will send you an email with the zip file.

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

查看更多
太酷不给撩
5楼-- · 2019-04-02 14:53

You cannot get raw heart rate monitor data from Samsung Galaxy S5.

Sensors Extension SDK is required to get raw data from sensors not supported by Google Android and this page states that:

Sensor Extension SDK has the following restrictions:

  • HRM Sensor IR/RED Signal
    • Devices with Android 5.0 (Lollipop API level 21) or higher is required.
    • Galaxy S5 and Galaxy S5mini are excluded.
    • Only supported by Samsung device with HRM sensor.
查看更多
Luminary・发光体
6楼-- · 2019-04-02 14:53

Use SensorManager.getDefaultSensor(65562) to get direct access to the HRM sensor.

查看更多
登录 后发表回答