8

現在、振動を監視するアプリを作成しようとしています。私は加速度計を使って仕事を終えます。記録された加速度が特定のしきい値を超えたとき、それをトリガーと呼びます。トリガーがある場合、トリガー時の加速度、磁場、光レベルのデータ(さまざまなセンサーから)をファイルに記録したいと思います。

現在の問題は、個々のセンサーからデータを取得することはできますが、複数のセンサーから同時にデータを取得する方法を理解できなかったことです。例:加速度計の変化を監視するようにセンサーリスナーを設定できますが、加速度データを記録するときに、他のセンサーからもまったく同時にデータを取得できますか?

前もって感謝します。

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 に答える