如何在android中获得像汽车一样的加速和减速?
问题描述:
我读了一些关于TYPE_LINEAR_ACCELERATION如何在android中获得像汽车一样的加速和减速?
private SensorManager mSensorManager;
private Sensor mSensor;
...
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_LINEAR_ACCELERATION);
但它返回3个值,我不知道如何与他们工作..
我想获得像这些设备的结果:
答
可能它返回三维的加速度。但根据this answer TYPE_LINEAR_ACCELERATION是不正确的使用。您可以尝试使用TYPE_ACCELEROMETER this question与您需要的非常相似。下面的代码可能会测量速度
public void onSensorChanged(SensorEvent se)
{
accX = se.values[SensorManager.DATA_X];
accY = se.values[SensorManager.DATA_Y];
accZ = se.values[SensorManager.DATA_Z];
long now = System.currentTimeMillis();
deltaT = now - lastEvetn;
lastEvetn = now;
// calculate velocity in 3D by using 3D acceleration
Vx = Vx + deltaT * accX;
Vy = Vy + deltaT * accX;
Vz = Vz + deltaT * accX;
}
那么你的答案是什么? aceleration = ??? – angel
accX = acelerationX等...... – canbax
那么如果一辆车在移动什么是加速度?此时我正在使用位置和locationAnt,使用公式location.getSpeed() - locationAnt.getspeed()/(location.getTime() - locationAnt.getTime())/ 1000 – angel