我有一個應用程序,我在這裏輪詢加速度數據的傳感器並將XYZ值保存到SQL DB中。 Codewise這是很簡單的:Android的線性加速度準確性
public void onSensorChanged(SensorEvent event) {
sensor = event.sensor;
int i = sensor.getType();
if (i == MainActivity.TYPE_ACCELEROMETER) {
accelerometerMatrix = event.values;
} else if (i == MainActivity.TYPE_GYROSCOPE) {
gyroscopeMatrix = event.values;
} else if (i == MainActivity.TYPE_GRAVITY) {
gravityMatrix = event.values;
} else if (i == MainActivity.TYPE_MAGNETIC) {
magneticMatrix = event.values;
}
//insert into database
}
MainActivity.TYPE_ACCELEROMETER
只是一個領域我在MainActivity類別設置。
如果我將它設置爲Sensor.TYPE_LINEAR_ACCELERATION
我注意到存儲到我的數據庫的值在精度上相當低(只有2位小數)。但如果我使用硬件加速度計Sensor.TYPE_ACCELERATION
然後準確性要高得多(6dp)
我的問題是,我檢索線性加速度值不正確,導致我只能得到2dp的準確性?或者,這只是傳感器在Android中如何融合在一起的限制?如果是後者,在使用電容式傳感器進行工作時,在濾除重力之後,如何在我的加速度計值中獲得更高的精度?