Frequently Asked Questions

Does Android 10 support per-display VSYNC?

Not yet. The VSYNC of the default display in Android 10 drives all displays.

Can displays be individually turned ON or OFF?

In Android 10, the implementation of the device power state is primarily global and determined by the power state of the default display. Only virtual displays can be turned ON/OFF individually, by setting the surface to null). Activity/WindowManager responds to this state change.

How do I dynamically configure input-display association?

There's no built-in way to dynamically configure the association between an input and a device in Android 10, but some workarounds can be applied in most cases. See Input Routing for details.

How do I enable system decorations on a display?

For testing, the most straightforward method is to use the Force Desktop Mode developer option, which enables system decorations and IME support on all secondary displays. This works for system-owned displays, such as physical panels or a Simulated Display, but may be restricted for virtual displays owned by apps.

For production, provide the default configuration file. For details, see:

How do I configure activities for specific displays?

Use LaunchParamsController, which intercepts all activity launches and allows a system component to modify the parameters used for launch. It's currently available within system_server.

Can a device be unlocked from a secondary screen?

The default implementation of the lock screen in Android 10 isn't interactive and doesn't allow for unlocking. An OEM can implement their own lock screen provided the fundamental security requirement is maintained.

  • The device lock state is global.
  • It applies to all displays.

How do I display an IME on a different display than its target?

An IME can only appear on a display configured in DisplayWindowSettings. If the config isn't enabled for a display where input is requested, the IME appears on the default display.

How do I always send key events to a specific display?

A keyboard is considered to be a non-targeted input source, so the input goes to the topmost focused window in the system. For an example of targeted key input see Back/Home button implementation in the PhoneWindowManager class. These keys only target the display whereas they are displayed in Android 10.

How is audio handled?

Android 10 contains no major improvements in this area. Multi-Zone Audio support for Auto has been added in Android 10, but a generic solution to handle separate targeted audio streams remains pending.

Can the same app be shown on several displays?

If the app supports it, then multiple instances of the app's activities can be created. By default, each runs under the same process. An example of such an app is Chrome. It's convenient to test this using a Launcher sample, which allows for a targeted activity launch and a request for a new instance.

Can multiple instances of the same app be created for different screens/users?

AOSP doesn't allow you to create multiple separate sandboxes and processes of the same app for the same user. Use cases associated with this request require concurrent multi-user support instead of app-level separation.

If different users want to use the same app, they should log in with their profiles. App-level separation requires logging in to the app for each session. Otherwise, other user's data may still be present.

Does Android 10 support multiple users?

No. Android 10 supports a single logged-in user.