2013-03-27 2 views
0

В моем приложении отключить автоматическую ориентацию, но я все еще хочу слушать метод изменения ориентации.
Я пробовал переопределить onConfigurationChanged, но я думаю, что он не вызывается, когда автоматический поворот отключен.
Я строил API 8.Как прослушивать изменение ориентации экрана при отключении автоматического поворота в Android?

Благодаря

ответ

1

Я хотел бы взглянуть на то, как читать акселерометр или гироскоп, чтобы сделать это. Я не уверен, работает ли это или нет, но так я начинаю. Вот ссылка о том, как использовать данные акселерометра.

http://www.techrepublic.com/blog/app-builder/a-quick-tutorial-on-coding-androids-accelerometer/472

+0

Я думал о том, чтобы напрямую считывать угол от датчика, но он кажется слишком неустойчивым, поэтому он будет меняться даже тогда, когда телефон будет помещен на плоскую поверхность, после чего мне придется начать выполнять вычисления и добавить некоторый порог/гистерезис, который я бы не хотел делать ... – SagiLow

+0

это вам поможет? http://stackoverflow.com/questions/8248274/android-detect-orientation-changed – ArchiFloyd

+0

Ну ... это, вероятно, сделает эту работу, но я больше боюсь памяти, которую это приложение будет потреблять при запуске кода там (он будет называться не остановлен, так как датчик все время меняется), и это может быть слишком много, но я думаю, что это вариант – SagiLow

0

Я использую этот код самого в моем приложении:

Display display = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)) 
      .getDefaultDisplay(); 
    int rotation = display.getRotation(); 

Значение rotation может быть следующим: 1 или 3 для ландшафта и 0 или 2 для портрета.

Я не уверен на 100%, если это будет работать, если автоматическое вращение отключено, но вы можете попробовать.

+0

Спасибо, но я не вижу, как это поможет мне прослушать изменение ориентации ... – SagiLow

+0

Хорошо, это сложнее, чем я думал ... Я использую его в методе 'onCreate', но поскольку вы отключите автоориентацию, он не будет вызываться, когда экран будет повернут ... –