Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fitbit Glance face cannot be displayed as Always-on #242

Open
aleb opened this issue Apr 23, 2024 · 0 comments
Open

Fitbit Glance face cannot be displayed as Always-on #242

aleb opened this issue Apr 23, 2024 · 0 comments

Comments

@aleb
Copy link

aleb commented Apr 23, 2024

The Glance face on Fitbit does not provide an Always-on mode. This means when Always-on is activated, the watch displays a generic face instead of Glance. The user is forced to either press the button or train themselves to make a gesture to wake up the watch. It can feel awkward so having Glance on all the time would be great.

I searched but I can't find anything about the process of turning a normal Clock face into an always-on Clock face. The plan would be to implement the changes to meet the requirements posted four years ago (mainly make sure the OPR does not exceed 20%) and hope when Glance is published we get the permission following the review.

The blogpost announcing Always-on Display appeared on Dec 2019: https://dev.fitbit.com/blog/2019-12-19-announcing-fitbit-os-sdk-4.1/#always-on-display-api

They say "AOD is gated behind a restricted permission that needs to be granted to a developer profile, and also granted for each clock or app (once reviewed)". IIUC it's a matter of implementing the slightly-changed Always-on behavior and then asking for the approval when uploading the app.

Strict requirements:

  1. A maximum 20% On Pixel Ratio (OPR) can be used.
  2. All hardware sensors should be stopped.
  3. Clocks can only refresh the screen once per minute, apps once per second. The blogpost has an example how to set the clock.granularity to minutes when Always-on is activated and to seconds when not.
  4. Clocks should not display stats as numbers, to avoid misleading users with stale data.
  5. Only outlines or checkerboard images should be used in AOD, as dense pixel areas can cause flicker.

My notes regarding the requirements

  1. The max 20% OPR can be obtained by forcing a black background, maybe hiding some other stuff.
  2. Nothing to do since no hardware sensors are used anyway.
  3. Refresh once per minute.
  4. I think the Steps count and Heartbeat rate shall also be hidden.
  5. Glance does not display any image except the background gradient..

I see the developers can use the access_aod permission to enable Always-on on the Fitbit OS Simulator: https://dev.fitbit.com/build/guides/permissions/#always-on-display

The display variable holds all the info about Always-on status https://dev.fitbit.com/build/reference/device-api/display/

  • readonly aodActive: true means that AOD mode is currently active. When this property is true, your clock or app MUST comply with AOD mode restrictions (on-pixel ratio and screen refresh rate).
  • aodAllowed: Apps may set this to true to signal that they are able to enter AOD mode
  • readonly aodAvailable: Whether Always-On Display (AOD) mode is supported by the current device.
  • readonly aodEnabled: Whether AOD mode is currently enabled system-wide.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant