【发布时间】:2015-09-18 12:49:55
【问题描述】:
我正在尝试编写一个小应用程序,它可以根据手机的速度更新屏幕。它使用加速度计计算当前速度并将其写入屏幕。问题是移动手机后速度不会回到零速度。它会稳定在速度的最高点。我正在使用 LINEAR_ACCELEROMETER
这是代码:
public class AccelerometerUpSensor extends SensorAbstract{
private ExerciseFragment fragment;
private double v0 = 0;
private float lastX;
private float lastY;
private float lastZ;
private long interval;
private long lastEvent = System.currentTimeMillis();
public AccelerometerUpSensor(SensorManager sensorManager, ExerciseFragment fragment, int[] sensorTypes){
super(sensorManager,sensorTypes);
this.fragment = fragment;
}
@Override
public final void onSensorChanged(SensorEvent event) {
lastX = event.values[0];
lastY = event.values[1];
lastZ = event.values[2];
long now = System.currentTimeMillis();
interval = (now - lastEvent);
lastEvent = now;
double acceleration = lastX+lastY+lastZ;
double velocity = v0 + (acceleration*(interval/(double)1000));
v0 = velocity;
System.out.println(velocity);
}
【问题讨论】:
标签: java android accelerometer velocity