2012-09-07 2 views
5

이제 진동 모니터링을 위해 앱을 만들려고합니다. 가속도계를 사용하여 작업을 마쳤습니다. 기록 된 가속도가 특정 임계 값을 초과하면이를 트리거라고 부릅니다. 방아쇠가있을 때 트리거 시간에 가속, 자기장, 광 레벨 데이터 (다른 센서에서)를 파일에 기록하려고합니다.Android에서 동시에 여러 센서 데이터 가져 오기

문제는 다음과 같습니다. 개별 센서에서 데이터를 가져올 수 있지만 동시에 여러 센서에서 데이터를 가져 오는 방법을 파악할 수 없습니다. 예 : 가속도 데이터를 기록 할 때 가속도계의 변화를 모니터링하도록 센서 수신기를 설정할 수 있습니다. 다른 센서의 데이터도 정확히 같은 시간에 수집 할 수 있습니까?

미리 감사드립니다. 다음과 같이

+0

([안드로이드에서 여러 센서 데이터를 검색하는 방법이 있나요]의 가능한 중복 http://stackoverflow.com/questions/4343342/is-there -a-way-to-retrieve-multiple-sensor-data-in-android) –

답변

6

예는이 작업을 수행 할 수 있습니다

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); 
+1

감사합니다 paritybit, 나는 이것을 시도했지만, 동시에 데이터를 수집하지 않는 것처럼 보입니다. 예를 들어, 센서 이벤트 변경이있을 때만 가속도계인지 또는 자이로 스코프인지 확인하십시오. 내가 원하는 것은 가속도계가 변할 때, 동시에 가속도계와 자이로 스코프에서 데이터를 수집하는 것입니다. – calBear

+2

이벤트 모델이 이런 식으로 작동한다고 생각하지 않습니다. 안드로이드가 센서 데이터를 얻었을 때 구독 된 이벤트 리스너를 실행 한 다음 이벤트에서 센서 데이터를 가져 오는 것 같습니다. 모든 센서에서 설정된 시점에 데이터를 가져올 수는 없습니다. –

+0

@ GregRandall 두 센서가 동시에 변경된 경우 어떻게해야합니까? 'event.values ​​[]'에 무엇이 기록 될까요? – Chaine