2016-08-15 88 views
0

我讀了一些關於TYPE_LINEAR_ACCELERATION如何在android中獲得像汽車一樣的加速和減速?

private SensorManager mSensorManager; 
private Sensor mSensor; 
... 
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); 
mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_LINEAR_ACCELERATION); 

但它返回3個值,我不知道如何與他們工作..

我想有它在M /就像下一個PIC enter image description here

我想獲得像這些設備的結果:

enter image description here

回答

0

可能它返回三維的加速度。但根據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; 
} 
+0

那麼你的答案是什麼? aceleration = ??? – angel

+0

accX = acelerationX等...... – canbax

+0

那麼如果一輛車在移動什麼是加速度?此時我正在使用位置和locationAnt,使用公式location.getSpeed() - locationAnt.getspeed()/(location.getTime() - locationAnt.getTime())/ 1000 – angel