因此,我正在編寫一個檢測運動的應用程序,並需要根據各種運動進行校準。在過去幾天裏,我注意到SensorEventListener
註冊後,onSensorChanged(SensorEvent)
丟棄不完整(因此錯誤).values[]
。這種行爲搞砸了我的校準過程,並且表示運動的力量太高。我已經驗證過,我已下載並測試過的每個加速度計日誌記錄應用都是這種情況,所以它不是特定於我的代碼的錯誤。我認爲這可能是由壞硬件(可能是我的moto droid 1特有)或我使用的自定義ROM引起的軟件錯誤(簡稱Stunning 4.9,來自Froyo 2.2.1源代碼)造成的。Android - motodroid 1上的加速度傳感器首先報告不正確的值?
示例:
sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
SENSOR_DELAY);
....
onSensorChanged(SensorEvent event){
// event.values[0] = 0.0
// event.values[1] = -0.47
// event.values[2] = 0.0
}
....
onSensorChanged(SensorEvent event){
// event.values[0] = 0.08
// event.values[1] = -0.47
// event.values[2] = 0.0
}
....
onSensorChanged(SensorEvent event){
// event.values[0] = 0.08
// event.values[1] = -0.47
// event.values[2] = 10.1
}
正如你所看到的,它通常需要2個讀數才能訪問所有正確的值。
任何人都可以在moto droid 1或其他手機上確認或否認此行爲嗎?您認爲一個好的解決方案是放棄前兩個或三個讀數,以便它們不會扭曲我的校準?
兩個摩托羅拉機器人的相似經驗。 – luser845 2011-07-19 00:39:20