Delphi Android получает ориентацию устройства

#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. Я думаю, что разрешу приложению изменять ориентацию экрана, чтобы правильно получать эту информацию. Это потребует некоторой работы с пользовательским интерфейсом, но это кажется более простым, чем вычисление ориентации устройства по данным датчиков ориентации…