Как я могу остановить автоматический поворот экрана в моем приложении для Android при разблокировке телефона из режима ожидания

У меня есть приложение для Android, которое я хочу всегда запускать в ландшафтном режиме.

У меня реализован следующий код, чтобы приложение постоянно находилось в ландшафтном режиме:

внутри моей активности в манифесте приложения
android:screenOrientation="landscape"

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

Однако, если у меня есть приложение, работающее на моем HTC Aria (Android 2.1) и телефон блокируется, если я разблокирую телефон, я вижу приложение примерно полсекунды, и оно находится в портретной ориентации, а затем быстро переключается обратно в ландшафтный режим. Это очень расстраивает, потому что все мои взгляды перемешаны, и это выглядит непрофессионально, как вы можете себе представить. Это происходит как в эмуляторе, так и на моем реальном телефоне.

Кто-нибудь знает, как остановить временное вращение приложения, когда телефон разблокирован?

Дополнения:
Я пытался переопределить onConfigurationChanged(), но безуспешно.

Я также попытался поставить setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); в onResume(), но приложение по-прежнему показывает неправильную ориентацию в течение доли секунды, когда телефон разблокирован.


person justinl    schedule 24.08.2010    source источник
comment
Используете ли вы android:screenOrientation=landscape во всех своих действиях? Вы можете столкнуться с проблемой, если забудете это сделать — мне не удалось воссоздать вашу проблему на моем Nexus One.   -  person Sameer Segal    schedule 24.08.2010
comment
Спасибо за тестирование. У меня только 1 занятие. Это странно, потому что он всегда в альбомной ориентации, за исключением доли секунды после того, как я разблокирую телефон. Я вижу его в портрете, а затем он просто быстро поворачивается обратно в пейзаж.   -  person justinl    schedule 24.08.2010
comment
На моторола дроиде тоже такое бывает - не нашел как обойти.   -  person Futumsh    schedule 26.10.2010


Ответы (3)


Попробуйте установить ориентацию в файле манифеста. может просто сработает.

person Umesh    schedule 24.08.2010
comment
Я поместил android:screenOrientation=landscape в манифест, приложение и узел активности в манифесте, но не повезло. - person justinl; 24.08.2010

Посмотрев на многие другие приложения, созданные только для альбомной ориентации, я вижу, что их приложения также не фиксируют свою ориентацию после перехода в режим ожидания. У меня такое ощущение, что это ограничение телефона, и что все приложения переключатся в портретную ориентацию, когда телефон заблокирован. Если у всех приложений есть эта «проблема», то я думаю, что можно не исправлять.

Пожалуйста, напишите, если вы узнали, что есть способ остановить принудительную портретную ориентацию.

person justinl    schedule 01.09.2010
comment
есть новости по этому поводу? - person Petr; 01.09.2016

приложение по-прежнему показывает неправильную ориентацию на долю секунды, когда телефон разблокирован.

Вы переместили setContentView(R.layout.main) в onResume ПОСЛЕ того, как вы указали свой код ориентации? Я бы попробовал установить ориентацию, затем setContentView()

person Z-Man    schedule 26.02.2012