Monday, 5 February 2018

java - How to read Heart rate from Android Wear



I need to read the heart rate of the user at that instant. I tried using this code located in my main activity in the Wear project.




public class MainActivity extends WearableActivity implements SensorEventListener {

private static final String TAG = "MainActivity";
private TextView mTextViewHeart;
SensorManager mSensorManager;
Sensor mHeartRateSensor;
SensorEventListener sensorEventListener;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

mTextViewHeart = (TextView) findViewById(R.id.heart);
mSensorManager = ((SensorManager) getSystemService(SENSOR_SERVICE));
mHeartRateSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_HEART_RATE);
mSensorManager.registerListener(this, mHeartRateSensor, SensorManager.SENSOR_DELAY_NORMAL);
Log.i(TAG, "LISTENER REGISTERED.");
mTextViewHeart.setText("Something here");


mSensorManager.registerListener(sensorEventListener, mHeartRateSensor, mSensorManager.SENSOR_DELAY_FASTEST);
}


public void onResume(){
super.onResume();
}

public void onAccuracyChanged(Sensor sensor, int accuracy) {
Log.d(TAG, "onAccuracyChanged - accuracy: " + accuracy);
}

public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() == Sensor.TYPE_HEART_RATE) {
String msg = "" + (int)event.values[0];
mTextViewHeart.setText(msg);
Log.d(TAG, msg);
}
else
Log.d(TAG, "Unknown sensor type");
}

}


This code is simply not working, giving me an error saying:




E/SensorManager﹕ sensor or listener is null


It works fine if I use anything else but the heart rate sensor.



I am using:




  • LG G4 with android API level 23

  • LG Urbane watch (Which I know has a heart rate sensor) with Wear API level 23



Thank you for your help.


Answer



I faced the same problem as you can see in this question. We have the same wear devices, so I'm almost sure that you have missed this on your wear AndroidManifest.xml:






Also, your should go to Permissions in Settings in order to check if that permission is enabled.



You can check my project on GitHub, which is working for now.


No comments:

Post a Comment

casting - Why wasn't Tobey Maguire in The Amazing Spider-Man? - Movies & TV

In the Spider-Man franchise, Tobey Maguire is an outstanding performer as a Spider-Man and also reprised his role in the sequels Spider-Man...