I'm trying to get both accelerometer and orientation data. Currently, I created an AccelerometerManager and OrientationManager. They both do the same thing; implement SensorEventListener and retrieve data from values[] in onSensorChanged() listeners.
Is there an easier way to do this? It seems like having 2 handlers with duplicate code is uneccessary. Is there a way to access a values[] array with the combined accelerometer and orientation data together?
Because of the 2 handlers, I'm also having 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);
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…