Данная статья применима к:

Общие сведения

Настройка фиксированной ориентации экрана для мобильных приложений. Проверка корректности работы фиксированной ориентации экрана.

Настройка фиксированной ориентации

Настройки фиксированной ориентации экрана для приложений задаются в конфигурационном файле /etc/xdg/plasmamobilerc.

Ориентация экрана приложения Waydroid задается в секции [APPORIENTATION] в виде строки, содержащей имя приложения и код ориентации экрана. Одному приложению соответствует одна строка. Строку можно добавить в любом месте в пределах секции [APPORIENTATION].

[APPORIENTATION]
waydroid.com.devinterestdev.streamshow=4
waydroid.com.android.calculator2=1
waydroid.org.lineageos.etar=2
waydroid.org.lineageos.jelly=3
fly-camera=1
fly-gallery=2
chromium=4

Варианты ориентации устройства приведены на рисунке слева направо:

  • верхняя грань устройства направлена вверх;
  • верхняя грань устройства направлена вниз;
  • левая грань устройства направлена вверх;
  • правая грань устройства направлена вверх;
  • лицевая сторона устройства направлена вверх;
  • лицевая сторона устройства направлена вниз.

Ориентация экрана приложения при определенной ориентации устройства задается кодом ориентации. Значения кодов ориентации могут различаться в зависимости от устройства. В качестве примера в таблице приведены значения кодов ориентации для устройства Lenovo IdeaPad URU.

Код

Положение устройства

Ориентация экрана приложения

1Верхняя грань устройства направлена вверхПриложение запустится в ландшафтной ориентации
2Верхняя грань устройства направлена внизПриложение запустится в портретной ориентации (справа налево)
3Левая грань устройства направлена вверхПриложение запустится в зеркальной портретной ориентации (слева направо)
4Правая грань устройства направлена вверхПриложение запустится в зеркальной ландшафтной ориентации (вверх ногами)

Если указать значение, отличное от приведенных в таблице (например, 5 или 6), это может привести к некорректному определению ориентации приложения.

Алгоритм определения ориентации

Ориентация экрана определяется при запуске приложения по следующему алгоритму:

  • проверяется необходимость изменить ориентацию экрана для запускаемого приложения;
  • если для приложения есть запись в конфигурационном файле /etc/xdg/plasmamobilerc, ему задаётся указанная ориентация экрана. Автоматический поворот экрана блокируется;
  • производится проверка, что приложение является приложением Waydroid;
  • проверяется разрешение экрана, указанное в конфигурационном файле /var/lib/waydroid/waydroid_base.prop. Если указанное разрешение экрана отличается от необходимого данному приложению, то разрешение в конфигурационном файле изменяется на необходимое. Затем выполняется перезапуск сессии Waydroid с повторным запуском приложения.

Необходимость изменить ориентацию экрана также проверяется при переключении между приложениями:

  • если для приложения есть запись в конфигурационном файле, ему задаётся указанная ориентация экрана. Автоматический поворот экрана блокируется;
  • если записи для приложения нет, то ориентация будет установлена в соответствии с текущими показаниями сенсора. Флаг автоматического поворота будет возвращён к предыдущему состоянию до блокировки.

Проверка ориентации

Проверить, что ориентация приложений Waydroid работает корректно, можно следующим образом:

  • в конфигурационном файле /etc/xdg/plasmamobilerc в секции [APPORIENTATION] (если она отсутствует — создать) добавить:
    • ориентацию экрана по умолчанию для всех приложений Waydroid — запись вида WaydroidDefaultOrientation=<код_ориентации>;
    • аналогичные записи для нескольких приложений Waydroid с разными кодами ориентации.
      Примечание. Узнать имя приложения можно, выполнив команду:
      waydroid app list
  • запустить указанные приложения.
    ВНИМАНИЕ! Приложения с разной ориентацией (кроме зеркальной) одновременно работать не будут.

Ориентация приложений Waydroid работает правильно, если:

  • фиксированная ориентация приложений автоматически применяется при их запуске и при переключении на них с помощью комбинации клавиш <Alt+Tab> или через графический интерфейс;
  • для приложений с фиксированной ориентацией блокируется автоматический поворот;
  • при переключении на приложение без фиксированной ориентации восстанавливается ориентация в соответствии с настройками для этого приложения или системными настройками.
  • Нет меток