有没有一种方法来检索Android的多传感器数据 [英] Is there a way to retrieve multiple sensor data in Android
问题描述
我试图让这两个加速度计和方位数据。目前,我创建了一个AccelerometerManager和OrientationManager。他们都做同样的事情;实施SensorEventListener和检索值[]在onSensorChanged数据()的听众。
有没有更简单的方法来做到这一点?好像有2处理器具有重复code是uneccessary。有没有一种方法来访问与组合的加速度和方向数据一起值[]数组?
2处理器,因为,我也有这样做:
orientationManager =新OrientationManager(本);
orientationSensorManager =(的SensorManager)getSystemService(SENSOR_SERVICE);
orientationSensorManager.registerListener(orientationManager,
orientationSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION)
SensorManager.SENSOR_DELAY_GAME);
accelerometerManager =新AccelerometerManager(本);
accelerometerSensorManager =(的SensorManager)getSystemService(SENSOR_SERVICE);
accelerometerSensorManager.registerListener(accelerometerManager,
orientationSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER)
SensorManager.SENSOR_DELAY_GAME);
可以尝试这样的:
私人的SensorManager mSensorManager;
私人SensorEventListener mSensorListener;
////
mSensorManager =(的SensorManager)本
.getSystemService(Context.SENSOR_SERVICE);
mSensorListener =新SensorEventListener(){
@覆盖
公共无效onAccuracyChanged(传感器为arg0,INT ARG1){
}
@覆盖
公共无效onSensorChanged(SensorEvent事件){
传感器传感器= event.sensor;
如果(sensor.getType()== Sensor.TYPE_ACCELEROMETER){
// TODO:获取值
}否则,如果(sensor.getType()== Sensor.TYPE_ORIENTATION){
// TODO:获取值
}
}
}
mSensorManager.registerListener(mSensorListener,mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),SensorManager.SENSOR_DELAY_GAME);
mSensorManager.registerListener(mSensorListener,mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION),SensorManager.SENSOR_DELAY_GAME);
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);
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);
这篇关于有没有一种方法来检索Android的多传感器数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!