8

我现在正在尝试创建一个应用程序来监控振动。我使用加速度计来完成这项工作,当记录的加速度超过某个阈值时,我称之为触发器。当有触发时,我想将触发时的加速度、磁场、光照水平数据(来自不同的传感器)记录到文件中。

现在的问题是:我可以从单个传感器获取数据,但无法弄清楚如何同时从多个传感器获取数据。例如:我可以设置一个sensorlistener来监听加速度计的变化,当我记录加速度数据的时候,我是否也能同时获取其他传感器的数据呢?

提前致谢。

4

1 回答 1

8

是的,您可以按以下方式执行此操作:

private SensorManager manager;
private SensorEventListener listener;

manager = (SensorManager) this.getSystemService(Context.SENSOR_SERVICE);
listener = 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) {
            ...
        }
        else if (sensor.getType() == Sensor.TYPE_GYROSCOPE) {
            ...
        }
    }
}

manager.registerListener(listener, manager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_GAME);
manager.registerListener(listener, manager.getDefaultSensor(TYPE_GYROSCOPE), SensorManager.SENSOR_DELAY_GAME);
于 2012-09-07T23:21:07.197 回答