Получите данные нескольких датчиков одновременно в 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);