如何检测到手机被移动了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);
}
答案 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!
希望它有所帮助!