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

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

Пока нет. В Android 10 вертикальная синхронизация экрана по умолчанию управляет всеми экранами.

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

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

Как динамически настроить связь между устройством ввода и экраном?

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

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

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

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

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

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

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

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

Блокировка устройства действует на всех экранах.

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

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

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

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

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

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

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

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

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

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

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

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

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