Android: отключить вращение на 90 °, но разрешить поворот на 180 °

Я хотел бы создать приложение для Android (для планшета), которое должно отображаться только в альбомной ориентации, например. приложение должно игнорировать вращения на 90 °, но поддерживать вращения на 180 °.

Добавление android: screenOrientation = "пейзаж" в манифесте заставляет приложение игнорировать все вращения (даже вращение на 180 °), т.е. вращение устройства на 180 ° показывает приложение вверх ногами.

Без атрибута android: screenOrientation мое приложение отображается "правильно" во всех четырех позициях. Вращение устройства на 180 ° переворачивает пользовательский интерфейс вертикально или. по горизонтали.

При вращении устройства создаются следующие сообщения журнала (возможно, это помогает?):

[...]: INFO/WindowManager(1290): Setting rotation to 1, animFlags=0
Rotation is a value between 0 and 3 representing the current orientation.

Подводя итог: возможно ли включить приложение для поддержки обеих ориентаций ландшафта?

Ответы

Ответ 1

Новая ориентация экрана sensorLandscape, по-видимому, предназначена для этой цели.

Например, вы можете сделать:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);

К сожалению, это доступно только для Android 2.3. В настоящее время я ищу способ добиться этого на Froyo.