Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is it possible to get PPG(Photoplethysmogram) data from a smart watch via android?

I want to develop a health care app using Android smart watch devices that have an optical heart rate sensor. Examples of such devices are: Samsung gear live, Moto360, LG G watch R, etc.

To do this, I need the raw PPG signal data from those devices, but I found that the Android API only supports heart rate data by BPM unit.

Does anyone know if the raw signal data is accessible, and if so, how do I get access to that data?

like image 439
Dul Lee Avatar asked Feb 14 '15 06:02

Dul Lee


1 Answers

Yes, It is possible to do that. I have answered a similar question here :Android Wear: How to get raw PPG data?

Basically, try to follow these steps:

1- Get the sensor type (represented by a number) of your PPG sensor (it is a constant that describes the sensor). This can be done by listing all the available sensors on your device:

List<Sensor> sensorList = mSensorManager.getSensorList(Sensor.TYPE_ALL);
        for (Sensor currentSensor : sensorList) {
            Log.d("List sensors", "Name: "+currentSensor.getName() + " /Type_String: " +currentSensor.getStringType()+ " /Type_number: "+currentSensor.getType());
        }

2- Then, try to find the sensorType of your PPG sensor. In your output, you will find one of the sensors containing the word ppg in it's type. For instance here is what the ppg sensor of my Huawei watch 2 looks like:

Name: AFE4405 light Sensor /Type_String:  com.huawei.watch.ppg /Type_Number: 65537

3-Register your listener using the the type_number of your ppg sensor, mine is 65537 so I would do this:

sensorManager.registerListener(this,sensorManager.getDefaultSensor(65537),SensorManager.SENSOR_DELAY_NORMAL);
like image 172
Mehdi Boukhechba Avatar answered Sep 19 '22 17:09

Mehdi Boukhechba