我正在使用带有陀螺仪、磁力计和加速度计的三星 Galaxy sii 手机。一切都在使用NDK。
我正在使用 toadlet 库来抽象出很多电话接口,但在该库中,有一个函数可以设置采样率,该函数调用预期的 NDK 函数:
void AndroidSensorDevice::setSampleTime(int dt){
if(mSensor!=NULL){
ASensorEventQueue_setEventRate(mEventQueue,mSensor,dt*1000);
}
}
当我改变加速度计和磁力计的采样率时,我大致看到了实际采样率的预期变化。但是,对于陀螺仪,它总是以最快的速度更新,即无论我将采样率设置为多少,我都会得到类似于以下的时间差:
I/toadlet (10266): dt= 0.619000
I/toadlet (10266): dt= 4.423000
I/toadlet (10266): dt= 0.511000
I/toadlet (10266): dt= 4.335000
I/toadlet (10266): dt= 0.586000
I/toadlet (10266): dt= 4.371000
I/toadlet (10266): dt= 0.586000
I/toadlet (10266): dt= 4.559000
I/toadlet (10266): dt= 0.340000
I/toadlet (10266): dt= 3.827000
I/toadlet (10266): dt= 0.617000
I/toadlet (10266): dt= 5.337000
I/toadlet (10266): dt= 0.154000
I/toadlet (10266): dt= 3.538000
I/toadlet (10266): dt= 0.556000
I/toadlet (10266): dt= 4.547000
即使尝试大得离谱的采样率也没有效果。有没有其他人看过这个?
手机运行的是 Android 2.3.5,我尝试同时使用 android-9 和 android-14 目标,没有明显区别。