¿Hay alguna manera de recuperar datos de múltiples sensores en Android

Estoy tratando de obtener datos de acelerómetro y orientación. Actualmente, creé un AccelerometerManager y OrientationManager. Ambos hacen la misma cosa; implementar SensorEventListener y recuperar datos de valores [] en escuchas onSensorChanged ().

¿Hay alguna forma más fácil de hacer esto? Parece que tener 2 controladores con código duplicado no es necesario. ¿Hay alguna manera de acceder a una matriz de valores [] con el acelerómetro combinado y los datos de orientación juntos?

Debido a los 2 controladores, también tengo que hacer esto:

    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);

Respuestas a la pregunta(1)

Su respuesta a la pregunta