0
나는 안드로이드에서 동일한 센서 이벤트 리스너를 다른 센서에 등록 할 수 있다는 것을 알고 있지만, 내 질문은 동일한 센서 이벤트 리스너를 둘 이상 등록 할 수 있다는 것입니다. 감지기? 감사합니다Android : 하나의 센서, 더 많은 센서와 청취자
SensorDataLogger sensorDataLogger = new SensorDataLogger();
GaitRecognition gaitRecognition = new GaitRecognition();
sensorManager.registerListener(sensorDataLogger, sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_GAME);
sensorManager.registerListener(gaitRecognition, sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_NORMAL);
new Thread(sensorDataLogger).start();
new Thread(gaitRecognition).start();
SensorDataLogger 및 GaitRecognition는 Runnable를하고 SensorEventListener 구현 모두.
이것은 SensorDataLogger 클래스입니다 :
public class SensorDataLogger implements Runnable, SensorEventListener {
long lastUpdate ;
long count = 0;
File directory, file;
public SensorDataLogger() {
directory = Utilities.createDirectory("PROVE_CAMPIONI");
file = Utilities.createFile(directory, "file_logger.txt");
}
@Override
public void run() {
}
@Override
public void onSensorChanged(SensorEvent event) {
// Log.d("SensorDataLogger","Sample acquired "+event.values[0]);
long sampleTime = System.currentTimeMillis();
getData(event, sampleTime);
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
public void getData(SensorEvent event, long sampleTime) {
float[] values = event.values;
if(lastUpdate == 0) {
lastUpdate = sampleTime;
}
long diff = sampleTime - lastUpdate;
count+=diff;
lastUpdate = sampleTime;
// Log.e("Sensor data logger","Sample acquired at "+timeStamp+" " +event.values[0]);
Utilities.writeData(file, Utilities.getTimeInSeconds(count) +", "+values[0]+", "+values[1]+", "+values[2]+"\n");
}
}
일부 코드를 제공했습니다. 맞다고 생각하니? 감사합니다. – rosekarma
청취자를위한 코드를 제공하지 않았지만 정확합니다. 작동하는 경우이 대답을 수락 된 것으로 표시하십시오. 그렇지 않으면 무엇이 잘못되었거나 오류가 발생했는지 말해주십시오. – TomerZ
감사합니다. 아니오 오류가 발생하지 않습니다. 어쨌든, 내 코드 좀 봐 주시겠습니까? 나는 당신에게 sensordatalogger 클래스를 제공합니다 – rosekarma