Получите данные нескольких датчиков одновременно в Android

Я сейчас пытаюсь создать приложение для мониторинга вибрации. Я использую акселерометр для завершения работы, когда записанное ускорение превышает определенный порог, я называю это триггером. Когда есть триггер, я хочу записать данные об ускорении, магнитном поле, уровне освещенности (от разных датчиков) во время запуска в файл.

Теперь проблема в том, что я могу получать данные от отдельного датчика, но не могу найти способ получить данные от нескольких датчиков одновременно. Например: я могу настроить сенсорный прослушиватель для отслеживания изменений акселерометра. Когда я записываю данные ускорения, могу ли я также получать данные с других датчиков одновременно?

Заранее спасибо.

1 ответ

Решение

Да, вы можете сделать это следующим образом:

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);
Другие вопросы по тегам