#android #delphi #screen-orientation
#Android #delphi #ориентация экрана
Вопрос:
Я хочу определить ориентацию устройства в приложении, которое установлено в портретном режиме. Если я задаю IFMXScreenService
, я получаю soPortrait
независимо от того, как ориентировано устройство.
Это логично, поскольку ориентация экрана постоянно soPortrait
. Но есть ли другой сервис, который предоставляет мне информацию, которую я ищу?
Комментарии:
1. Я думаю, что вы ищете датчик ориентации: docwiki.embarcadero.com/CodeExamples/Tokyo/en /…
2. Спасибо, задача состоит в том, чтобы вычислить ориентацию из необработанных данных, которые предоставляют датчики. Поскольку Android также должен делать это внутренне, я надеялся, что существует вызов API или около того…
3. На Android, что я обычно делаю, это подписываюсь на TOrientationChangedMessage и отслеживаю изменения. Таким образом, вы бы использовали TMessageManager. DefaultManager. SubscribeToMessage(TOrientationChangedMessage, OrientationChanged); а затем вызывает IFMXScreenService. Получает ориентацию экрана. У вас это не работает?
4. @Allan: Это не работает, поскольку ориентация экрана не меняется. Приложение исправлено в портретном режиме, как упоминалось выше.
5. Я думаю, что разрешу приложению изменять ориентацию экрана, чтобы правильно получать эту информацию. Это потребует некоторой работы с пользовательским интерфейсом, но это кажется более простым, чем вычисление ориентации устройства по данным датчиков ориентации…