Android如何检测手机是否掉头

Android如何检测手机是否掉头,android,Android,这是我用来检测手机是否掉头的代码 private SensorManager sensorManager; private int orientationLim = 165; @Override public void onSensorChanged(SensorEvent event) { if (event.sensor.getType() == Sensor.TYPE_ORIENTATION) { // If shake to s

这是我用来检测手机是否掉头的代码

private SensorManager sensorManager;
    private int orientationLim = 165;

@Override
    public void onSensorChanged(SensorEvent event) {
        if (event.sensor.getType() == Sensor.TYPE_ORIENTATION) {

            // If shake to stop is enabled
            boolean turnAroundToStop = Utils.getBooleanFromProperties(this, Properties.SP_CB_TURN_AROUND_TO_STOP);

            if (turnAroundToStop) {
                float value = Math.abs(event.values[1]);
                if (value > orientationLim && !stopped) {
                    // Down
                    stopped = true;
                } else {
                    // Up
                    stopped = false;
                }
            }
        }
    }
但问题是,
stopped
变量设置为true,即使手机并没有完全掉头,只是稍微掉头了一点

如何修改此代码,该代码仅在手机处于中继状态时执行。

float pitch=values[2];
float pitch = values[2];
if (pitch <= 45 && pitch >= -45) {
    // mostly vertical
} else if (pitch < -45) {
    // mostly right side up
} else if (pitch > 45) {
    // mostly left side up
}
如果(节距=-45){ //大部分是垂直的 }否则,如果(节距<-45){ //大部分是正面朝上 }否则,如果(节距>45){ //大部分是左侧向上 }
请在此查看此主题:


虽然这在理论上可以回答这个问题,但在这里包括答案的基本部分,并提供链接供参考。如果屏幕向下,水平方向如何?