Часто задаваемые вопросы

Поддерживает ли Android 10 VSYNC для каждого дисплея?

Еще нет. VSYNC дисплея по умолчанию в Android 10 управляет всеми дисплеями.

Можно ли отдельно включать и выключать дисплеи?

В Android 10 реализация состояния питания устройства в основном глобальна и определяется состоянием питания дисплея по умолчанию. Только виртуальные дисплеи можно включать и выключать по отдельности, установив для поверхности значение null ). Activity/WindowManager отвечает на это изменение состояния.

Как динамически настроить ассоциацию ввода-вывода?

В Android 10 нет встроенного способа динамической настройки связи между вводом и устройством, но в большинстве случаев можно применить некоторые обходные пути. Подробнее см. в разделе Маршрутизация ввода .

Как включить системные украшения на дисплее?

Для тестирования наиболее простым методом является использование параметра разработчика Force Desktop Mode, который включает системные украшения и поддержку IME на всех дополнительных дисплеях. Это работает для системных дисплеев, таких как физические панели или смоделированный дисплей, но может быть ограничено для виртуальных дисплеев, принадлежащих приложениям.

Для производства предоставьте файл конфигурации по умолчанию. Подробнее см.:

Как настроить действия для конкретных дисплеев?

Используйте LaunchParamsController , который перехватывает все запуски активности и позволяет системному компоненту изменять параметры, используемые для запуска. В настоящее время он доступен в system_server .

Можно ли разблокировать устройство с дополнительного экрана?

Реализация экрана блокировки по умолчанию в Android 10 не является интерактивной и не позволяет разблокировать. OEM-производитель может реализовать собственный экран блокировки при условии соблюдения основных требований безопасности.

  • Состояние блокировки устройства является глобальным.
  • Это относится ко всем дисплеям.

Как отобразить IME на дисплее, отличном от целевого?

IME может отображаться только на дисплее, настроенном в DisplayWindowSettings . Если конфигурация не включена для дисплея, на котором запрашивается ввод, IME отображается на дисплее по умолчанию.

Как всегда отправлять ключевые события на определенный дисплей?

Клавиатура считается нецелевым источником ввода, поэтому ввод идет в самое верхнее сфокусированное окно в системе. Пример целевого ввода с помощью клавиши см. в разделе Реализация кнопки «Назад/Домой» в классе PhoneWindowManager. Эти клавиши предназначены только для дисплея, тогда как в Android 10 они отображаются.

Как обрабатывается звук?

Android 10 не содержит серьезных улучшений в этой области. Поддержка Multi-Zone Audio для Auto была добавлена ​​в Android 10, но универсальное решение для обработки отдельных целевых аудиопотоков еще не разработано.

Может ли одно и то же приложение отображаться на нескольких дисплеях?

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

Можно ли создать несколько экземпляров одного и того же приложения для разных экранов/пользователей?

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

Если разные пользователи хотят использовать одно и то же приложение, они должны войти в систему со своими профилями. Разделение на уровне приложения требует входа в приложение для каждого сеанса. В противном случае данные других пользователей все еще могут присутствовать.

Поддерживает ли Android 10 несколько пользователей?

Нет. Android 10 поддерживает одного пользователя, вошедшего в систему.