Поддерживает ли Android 10 вертикальную синхронизацию для каждого дисплея?
Пока нет. VSync стандартного дисплея в Android 10 управляет всеми дисплеями.
Можно ли включать и выключать дисплеи по отдельности?
В Android 10 реализация состояния питания устройства в первую очередь глобальна и определяется состоянием питания дисплея по умолчанию. Только виртуальные дисплеи можно включать и выключать по отдельности, устанавливая свойство Surface в null
. Activity или WindowManager реагирует на это изменение состояния.
Как динамически настроить связь ввода и отображения?
В Android 10 нет встроенного способа динамической настройки связи между входом и устройством, но в большинстве случаев можно применить некоторые обходные пути. Подробнее см. в разделе Маршрутизация входных данных .
Как включить системные украшения на дисплее?
Для тестирования проще всего использовать параметр разработчика «Принудительный режим рабочего стола», который включает системные декорации и поддержку редактора метода ввода (IME) на всех дополнительных дисплеях. Этот метод работает для системных дисплеев, таких как физические панели или симулированные дисплеи, но может быть ограничен для виртуальных дисплеев, принадлежащих приложениям.
Для производства предоставьте файл конфигурации по умолчанию. Подробнее см.:
Как настроить действия для определенных дисплеев?
Используйте LaunchParamsController
, который перехватывает все запуски активности и позволяет системному компоненту изменять параметры, используемые для запуска. Он доступен в system_server
.
Можно ли разблокировать устройство с помощью дополнительного экрана?
Экран блокировки по умолчанию в Android 10 не является интерактивным и не позволяет разблокировать устройство. Производители оригинального оборудования могут реализовать собственный экран блокировки при условии соблюдения основных требований безопасности.
Состояние блокировки устройства является глобальным и применяется ко всем дисплеям.
Как отобразить IME на дисплее, отличном от целевого?
Редактор метода ввода (IME) может отображаться только на дисплее, настроенном в DisplayWindowSettings
. Если конфигурация не включена для дисплея, на котором запрашивается ввод, IME отображается на дисплее по умолчанию.
Как всегда отправлять ключевые события на определенный дисплей?
Клавиатура считается нецелевым источником ввода, поэтому ввод осуществляется в самое верхнее активное окно системы. Пример целевого ввода с помощью клавиш см. в реализации кнопок «Назад» и «Домой» в классе PhoneWindowManager
. Эти клавиши воздействуют только на дисплей, тогда как в Android 10 они отображаются.
Как обрабатывается звук?
В Android 10 нет существенных улучшений в этой области. Поддержка многозонного звука для режима Auto была добавлена в Android 10, но универсальное решение для обработки отдельных целевых аудиопотоков пока не разработано.
Можно ли отображать одно и то же приложение на нескольких дисплеях?
Если приложение поддерживает эту функцию, можно создать несколько экземпляров его действий. По умолчанию каждый из них выполняется в одном и том же процессе. Примером такого приложения является Chrome. Удобно протестировать это с помощью примера Launcher , который позволяет целенаправленно запустить действие и запросить новый экземпляр.
Можно ли создать несколько экземпляров одного и того же приложения для разных экранов/пользователей?
AOSP не позволяет создавать несколько отдельных песочниц и процессов одного и того же приложения для одного и того же пользователя. В вариантах использования, связанных с этим запросом, требуется поддержка одновременной работы нескольких пользователей вместо разделения на уровне приложения.
Если разные пользователи хотят использовать одно и то же приложение, им следует войти в систему, используя свои профили. Разделение на уровне приложения требует входа в приложение для каждого сеанса. В противном случае данные других пользователей могут остаться.
Поддерживает ли Android 10 работу нескольких пользователей?
Нет. Android 10 поддерживает только одного вошедшего в систему пользователя.