Is there a way to get multiple sensor data in Android

I am trying to get both an accelerometer and orientation data. Currently, I have created AccelerometerManager and OrientationManager. They both do the same; implement SensorEventListener and get data from [] values ​​in onSensorChanged () listeners.

Is there an easier way to do this? It seems that two handlers with duplicate code are not needed. Is there a way to access the values ​​[] array with a combined accelerometer and orientation data together?

Due to two handlers, I also have to do this:

orientationManager = new OrientationManager(this); orientationSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); orientationSensorManager.registerListener(orientationManager, orientationSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION), SensorManager.SENSOR_DELAY_GAME); accelerometerManager = new AccelerometerManager(this); accelerometerSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); accelerometerSensorManager.registerListener(accelerometerManager, orientationSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_GAME); 
+6
android accelerometer orientation sensor
source share
1 answer

Can you try something like this:

 private SensorManager mSensorManager; private SensorEventListener mSensorListener; //// mSensorManager = (SensorManager) this .getSystemService(Context.SENSOR_SERVICE); mSensorListener = new SensorEventListener() { @Override public void onAccuracyChanged(Sensor arg0, int arg1) { } @Override public void onSensorChanged(SensorEvent event) { Sensor sensor = event.sensor; if (sensor.getType() == Sensor.TYPE_ACCELEROMETER) { //TODO: get values }else if (sensor.getType() == Sensor.TYPE_ORIENTATION) { //TODO: get values } } } mSensorManager.registerListener(mSensorListener, mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_GAME); mSensorManager.registerListener(mSensorListener, mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION), SensorManager.SENSOR_DELAY_GAME); 
+32
source share

All Articles