我有一个应用程序,我在这里轮询加速度数据的传感器并将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中如何融合在一起的限制?如果是后者,在使用电容式传感器进行工作时,在滤除重力之后,如何在我的加速度计值中获得更高的精度?