How to make watchos keep the screen on continuously

We developed a camera remote control app for Apple Watch, but during the development process, we found that Apple Watch is prone to sleep on its own without screen interaction (usually automatically sleeping between 5s and 15s when there is no interaction, but our Apple Watch app actually receives the camera preview video frame data we transmit all the time, and there is no data interaction), and then triggers the sessionReachableDidChange function, and the session.isRechable is false. We hope that the camera remote control app for our Apple Watch can remain on when in the foreground, making it convenient to control our camera app on our phone. We found that DJI's Apple Watch app does not automatically sleep and does not sleep for more than 2 minutes. We have tried many methods, such as heartbeat packets, and I have added WKSupportsAlwaysOnDsplay to the Apple Watch info.plist file, but have not found an effective solution. I hope you can provide assistance, thank you.

Answered by DTS Engineer in 826619022

I believe the Alway On feature is what you are looking for. The following articles cover the information about Always On and the frontmost app state:

Basically, when your app is in the Alway On mode, Apple Watch continues to display its user interface in either of the following cases:

  • Your app is the frontmost app.
  • Your app is running a background session.

How long your app stays frontmost depends on the user setting (Settings > General > Return to Clock), which is default to 2 minutes. If your app doesn't run any background session (Workout, location, background audio, and audio-recording), it should by default be in Alway On mode for around 2 minutes.

Assuming your app is built for watchOS 8 and later, Always On is enabled by default, and so WKSupportsAlwaysOnDisplay is not needed (unless you would disable Always On).

Note that Always On isn’t available on Apple Watch SE or Apple Watch Series 4 and earlier. If you don't see Always On working for you, make sure that:

  • Your testing Apple Watch supports Always On.
  • The Return to Clock setting in your Apple Watch is appropriate.
  • Your app is built for watchOS 8 and later.

If you see anything beyond the above, please share the details of your system configuration and how you do the testing for folks to comment.

Best,
——
Ziqiao Chen
 Worldwide Developer Relations.

I believe the Alway On feature is what you are looking for. The following articles cover the information about Always On and the frontmost app state:

Basically, when your app is in the Alway On mode, Apple Watch continues to display its user interface in either of the following cases:

  • Your app is the frontmost app.
  • Your app is running a background session.

How long your app stays frontmost depends on the user setting (Settings > General > Return to Clock), which is default to 2 minutes. If your app doesn't run any background session (Workout, location, background audio, and audio-recording), it should by default be in Alway On mode for around 2 minutes.

Assuming your app is built for watchOS 8 and later, Always On is enabled by default, and so WKSupportsAlwaysOnDisplay is not needed (unless you would disable Always On).

Note that Always On isn’t available on Apple Watch SE or Apple Watch Series 4 and earlier. If you don't see Always On working for you, make sure that:

  • Your testing Apple Watch supports Always On.
  • The Return to Clock setting in your Apple Watch is appropriate.
  • Your app is built for watchOS 8 and later.

If you see anything beyond the above, please share the details of your system configuration and how you do the testing for folks to comment.

Best,
——
Ziqiao Chen
 Worldwide Developer Relations.

How to make watchos keep the screen on continuously
 
 
Q