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