2012-04-12 86 views
0

我想收集約。 5秒加速度計的值。什麼是正確的方法來做到這一點?Android:如何收集固定時間段內的傳感器值?

我試着通過實現一個AsyncTask,它在加速度計的傳感器管理器上註冊和註銷自己,然後睡5秒。但在睡覺的那些5s onSensorChanged方法不會被調用:D ...

我的追求動機如下: 爲了校準我的加速度計我想收集一些秒傳感器值(而手機躺在地板上),然後通過計算平均值得到偏差...

我欣賞任何提示!

回答

3

假設你開始你的傳感器的onResume:

/** 
* start sensors 
*/ 
public void onResume() { 
    mSensorManager.registerListener(mListener, mSensorAcceleration, SensorManager.SENSOR_DELAY_GAME); 
    mSensorManager.registerListener(mListener, mSensorMagnetic, SensorManager.SENSOR_DELAY_GAME); 
    Handler h = new Handler(); 
    h.postDelayed(new Runnable() { 

     @Override 
     public void run() { 
     // do stuff with sensor values 
      mSensorManager.unregisterListener(mListener);    
     } 
    }, 5000); 
... 
+0

作品完美的我!非常感謝 – user1086105 2012-04-12 08:04:04