Android - motodroid 1上的加速度计首先报告错误值?

所以我正在编写一个可以检测运动的应用程序,需要根据各种动作进行校准。在过去的几天里,我注意到在注册
SensorEventListener
之后,
onSensorChanged(SensorEvent)
抛出不完整(因此错误)
.values[]
。这种行为搞砸了我的校准过程,表示移动的力量太大了。我已经验证了我已下载并测试的每个加速度计日志记录应用程序的情况,因此它不是特定于我的代码的错误。我认为这可能是由于硬件坏(可能是我的moto droid 1特有的),或者我正在使用的自定义ROM的软件错误(Simply Stunning 4.9,来自Froyo 2.2.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机器人1或其他手机上确认或否认这种行为吗?你认为一个好的解决方案就是放弃前2或3个读数,这样它们就不会扭曲我的校准吗?     
已邀请:
对我来说听起来很合理。也许您可以首先使用最快的延迟注册您的听众,这样您就可以快速获得这些错误读数,然后重新注册您所需的校准更新速率。你可以使用两个不同的监听器,第一个监听器,然后取消注册自己并注册另一个(好的)监听器。     

要回复问题请先登录注册