有没有办法在Android中检索多个传感器数据 [英] Is there a way to retrieve multiple sensor data in Android
问题描述
我正在尝试获取加速度计和方向数据.目前,我创建了一个 AccelerometerManager 和 OrientationManager.他们都做同样的事情;实现 SensorEventListener 并从 onSensorChanged() 侦听器中的 values[] 检索数据.
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.
有没有更简单的方法来做到这一点?似乎不需要 2 个具有重复代码的处理程序.有没有办法使用组合的加速度计和方向数据访问 values[] 数组?
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?
因为有 2 个处理程序,我也必须这样做:
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);
推荐答案
你能不能试试这样的:
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);
这篇关于有没有办法在Android中检索多个传感器数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!