Определение ориентации устройства

Мне нужно обнаружить изменение ориентации устройства Android, не играя вручную с данными датчика, сохраняя при этом ориентацию активности придерживаться некоторой ориентации

onConfigurationChange не сработает, так как прилипнет моя активность, чтобы не вращаться.

Играя с данными датчика, чтобы обнаружить изменение ориентации, я считаю, что в качестве изобретения колеса, поскольку Android уже имеет встроенную реализацию алгоритма для обнаружения изменения ориентации устройства. И с другой стороны, обнаружение изменения ориентации - это не простые проверки, подобные этой.

    public void onSensorChanged(SensorEvent event) {
        if (event.sensor.getType() != Sensor.TYPE_ACCELEROMETER || event.values.length < 3) {
            return;
        }
        //getResources().getConfiguration().orientation;
        if (event.values[1] < 6.5 && event.values[1] > -6.5) {
            if (orientation!=1) {
                Log.d("Sensor", "Protrait");
            }
            orientation=1;
        } else {
            if (orientation!=0) {
                Log.d("Sensor", "Landscape");
            }
            orientation=0;
        }
   }

Это действительно требует реальной обработки данных, таких как фильтрация от шума и внезапных коротких сотрясений / вращений.

Итак, есть идеи, как можно определить ориентацию устройства с помощью устаревших сервисов? (Еще раз, я буду придерживаться своей деятельности в некоторой ориентации, такonConfigurationChange не будет работать)

Ответы на вопрос(3)

Ваш ответ на вопрос