如何使用加速度计检测X运动

时间:2014-12-11 15:35:14

标签: android accelerometer

如何检测到手机被移动了f.e.使用Accelerometer?2米10米?我需要跟踪动画何时开始打开GPS。

    @Override
        public void onSensorChanged(SensorEvent event) {
            float x = event.values[0];
            float y = event.values[1];
            float z = event.values[2];

            float accel = FloatMath.sqrt(x * x + y * y + z * z);
            g = g * 0.9f + accel * 0.1f;

            if ((System.currentTimeMillis() - mSensorTimestamp) < 2000) return;

             //What I have to do here?

            mSensorManager.unregisterListener(this);
        }

1 个答案:

答案 0 :(得分:1)

我认为你错了,加速度计不像这样工作,就像位置跟踪器一样。 检查The motion docs on d.android.com以查看我的意思。

来自文档:

  

加速度计使用标准传感器坐标系。在实践中,   这意味着当设备铺设时,以下条件适用   平放在桌子上的自然方向:

     

如果您将设备推向左侧(使其向右移动),   x加速度值为正。如果您按下设备   在底部(所以它远离你),y加速度值是   正。如果您以加速度将设备推向天空   对于A m / s2,z加速度值等于A + 9.81,其中   对应于设备的加速度(+ A m / s2)减去   重力(-9.81 m / s2)。固定设备将具有   加速度值为+9.81,对应于加速度   装置(0 m / s2减去重力,即-9.81 m / s2)。

所以,我建议您直接使用Location Service

希望它有所帮助!