1

For my Wear OS watch face project, I was using the flag SCREEN_BRIGHT_WAKE_LOCK to acquire a wakelock that keeps the screen fully on for one minute (triggered by the user as needed). This flag has been deprecated. The flag PARTIAL_WAKE_LOCK is still valid, but does not keep the screen on. What is the correct way to do this now?

go3d
  • 443
  • 3
  • 11

1 Answers1

1

I believe the watch controls this and it's usually a user setting to enable "Always on Display". Even in this mode, it's likely that the app also runs in ambient mode.

For Watchfaces, you can check the drawMode

https://github.com/android/wear-os-samples/blob/main/WatchFaceKotlin/app/src/main/java/com/example/android/wearable/alpha/AnalogWatchCanvasRenderer.kt#L221-L226

 override fun render(canvas: Canvas, bounds: Rect, zonedDateTime: ZonedDateTime) {
        val backgroundColor = if (renderParameters.drawMode == DrawMode.AMBIENT) {

When it

For Apps

This AlwaysOnKotlin sample demonstrates how to support your app drawing in Ambient mode

Awake

Ambient

It uses Ambient Mode

Yuri Schimke
  • 12,435
  • 3
  • 35
  • 69
  • Thanks Yuri! This seems to be for Wear OS apps only, or? What I need is to keep my watch face in full screen mode. There are two situations for my watch face for this: 1. The stopwatch mode continues in high fps for 60 secs. 2. Torch function with white screen and high brightness for 1 min. This was working great with SCREEN_BRIGHT_WAKE_LOCK. Is this not possible any longer with the new guidelines? That would be sad. – go3d Mar 25 '22 at 15:13
  • 1
    Yep, I missed that. I don't think you can do what you want, as it would not allow the user and system to protect the battery. – Yuri Schimke Mar 25 '22 at 22:06