Vega OS: no API or device setting to keep the display awake for non-media (signage/kiosk) apps — screensaver engages despite foreground app

Environment

  • Device: Fire TV Stick 4K Select (product callie, armv7l), Vega OS 1.1 (TV Ship/27)

  • Vega SDK 0.23.8128

  • React Native for Vega 0.72, @amazon-devices/webview 3.5.7

Summary
A foreground Vega app that isn’t actively decoding media (e.g. a WebView-based digital-signage player) cannot keep the display on. After a few minutes of no remote input, com.amazon.screensaver engages and the display dims/sleeps — even though the app is foreground, VISIBLE, and continuously rendering. There is no public API to prevent this and no device Settings option to disable it.

Steps to reproduce

  1. Build a WebView app that shows static web content full-screen; launch it on the device.

  2. Leave the device idle (no remote input) for ~5 minutes.

  3. The screensaver engages / the display powers down.

Root cause (from device logs)
The resource manager only treats specific session types as display-keeping. A foreground non-media app does not hold any of them:

resmgr-monitor-service-session [AppSessionMonitor.cpp:362]
  app's active session media-playback is not one of the display session(s):
  {"video-playback", "audio-playback", "power-normal"}

The app’s active sessions are display, input-focus, and (when media is present) the generic media-playback, none of which count — so the screensaver proceeds.

What I tried — no sanctioned workaround exists

  • Device Settings: no option to disable the screensaver or set sleep to “Never.”

  • DisplayManager (kepler-graphics): display configuration only (color depth/space, HDR, refresh rate, overscan) — no power/sleep/keep-on method.

  • kepler-media-controls: metadata/transport (play/pause/state) only; does not create a display-keeping session.

  • W3C Screen Wake Lock (navigator.wakeLock) inside the WebView: not honored by the resource manager; screensaver still engages.

  • Injecting a media element into the page registers only the generic media-playback session, which the resmgr explicitly rejects (above).

Impact
Digital signage, kiosk, dashboard, menu-board, and status-display apps — a major app category — cannot run 24/7 on Vega. This is precisely the use case for the low-cost Fire TV Stick 4K Select that customers are being moved onto via trade-in, so the gap blocks a meaningful set of developers and deployments.

Requested
Any one of:

  1. A public keep-screen-awake / inhibit-screensaver API (turbomodule and/or a manifest.toml capability or privilege), or

  2. Have the platform honor a declared media-controls “playing” session as a display-keeping session, or

  3. A device Settings option (and/or a provisioning flag) to disable the screensaver / set sleep to Never for signage deployments.

I know this has come up multiple times, but it will continue to come up until Amazon relents.

Hi @Jim_Shuster,

Welcome to the Amazon Developer Community!
Thank you for the extremely thorough write-up and for documenting everything you’ve already tried.

You’re correct - Vega’s current architecture only prevents the screensaver during active media playback sessions (specifically video-playback, audio-playback, or power-normal sessions). There is no public wake lock API, no manifest capability, and no way for a non-media foreground app to inhibit the screensaver programmatically.

Regarding device settings: There are timeout adjustments available under Settings → Display & Sounds → Ambient Experience → Ambient Preferences → Advanced Settings, but these only extend the idle timeout - they don’t offer an “infinite” or “Never” option, which your signage use case requires.

Current state:

  • No keep-screen-awake API exists for non-media apps
  • The platform does not honor W3C Screen Wake Lock or generic media-playback sessions for this purpose
  • This is a known gap for signage/kiosk/dashboard use cases

I’ve logged your feature request internally. The three options you proposed (wake lock API, honoring media-controls “playing” as display-keeping, or a “Never” sleep setting) are clear and well-reasoned.
However, I want to be transparent - this capability is not currently planned for the near-term roadmap.

I understand this is a blocking limitation for your deployment scenario, and I appreciate you taking the time to document it so thoroughly.

Warm Regards,
Ivy

I also have this issue. Any update?

Hi @John_Westerdale

Welcome to Amazon Developer Community!!
I’ve logged this feature request internally.
However, I want to be transparent - this capability is not currently planned for the near-term roadmap.

Warm Regards,
Ivy