Reputation: 1099
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.
Upvotes: 4
Views: 6027
Reputation: 2790
To access and enable infra red light:
Use at Manifest
uses permission android:name="android.permission.BODY_SENSORS"/>
implement SensorEventListener at Activity
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) {
}
Check Log for results ;)
Upvotes: 1
Reputation: 101
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:
Upvotes: 1
Reputation: 624
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.
Upvotes: 0
Reputation: 51
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
Upvotes: 0
Reputation: 133
Use SensorManager.getDefaultSensor(65562)
to get direct access to the HRM sensor.
Upvotes: 1