Android Fsensor LinearAccelerationFilter返回数组索引超出范围错误

时间:2018-10-01 10:40:55

标签: android filter accelerometer sensor

在我的代码中,我使用Fsensor库(https://github.com/KalebKE/FSensor)来实现LowPassFilter和LinearAccelerationFilter来过滤加速度计数据:

lowPassFilter = new LowPassFilter();
linearAccelerationFilter = new LinearAcceleration(lowPassFilter) {
    @Override
    public float[] getGravity() {
        return new float[0];
    }
};
lowPassFilter.setTimeConstant(5);

过滤器用于onSensorChanged:

Sensor mySensor = sensorEvent.sensor;
//if Sensor is Accelerator
if (mySensor.getType() == Sensor.TYPE_ACCELEROMETER) {
    try{
        //filtering the acceleration
        System.arraycopy(sensorEvent.values, 0, acceleration, 0, sensorEvent.values.length);
        filteredAcceleration = lowPassFilter.filter(acceleration);
        filteredAcceleration = linearAccelerationFilter.filter(filteredAcceleration);

    }catch (Exception e){
        Log.e("Low Pass Filter", ""+e);
    }

每次调用onSensorChanged都会收到错误消息:

E/Low Pass Filter: java.lang.ArrayIndexOutOfBoundsException: length=0; index=0

因此linearAccelerationFilter尝试在不存在的索引上使用数组的浮点数。 但是为什么要这样做呢? 你有什么主意吗?

0 个答案:

没有答案