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

Поддерживает ли 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 не содержит серьезных улучшений в этой области. Поддержка многозонного аудио для Auto была добавлена ​​в Android 10, но общее решение для обработки отдельных целевых аудиопотоков еще не разработано.

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

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

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

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

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

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

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