有没有一种方法来检索Android的多传感器数据 [英] Is there a way to retrieve multiple sensor data in Android

查看:115
本文介绍了有没有一种方法来检索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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆