[HR] tag measures constantly in Wear OS 4 [BUG]

‘Measure continuously’ of heart rate works despite setting it to ‘Manual only’ mode, on a watchface made in ver 1.4.20 installed in Watch 6.
It continuously Works, Works, Works … no matter which mode :slight_smile:
The ‘Sync to device’ does not work.
Check this.

I can confirm. On Wear OS 4. When HR tag is used, watch face measures continuously.
On Wear OS 3 or 3.5, it works as it should. I don’t know why measure is on all the time but I believe it will kill battery really quickly.

@Matteo_Dini , can you test it too?

@sinjae can you check it too?

Watch 4, Wear OS 3or 3.5, works well according to the manual, But not in Watch 6, Wear4 :slight_smile:
The WFS team seems ready for the next version of WFS.
It seems good to postpone the update of watchfaces a little bit, to avoid doing double work :slight_smile:

It should sync with the health Setting. I was told the Pixel Watches have continuous heart rate monitoring. The irregular heart rate may be why it is all time on Wear4.

Why would it use more battery? The heart rate sensor is on if it is being displayed or not?

Samsung Developer Relations

Green diode is flashing all the time when watch face is installed and [HR] tag value changes every seconds. When opening S Health, is shows completely different heart rate value. (because it is set to measure every 10 minutes). I don’t know why this is happening.

If you have Galaxy Watch 6 with Wear OS 4 you can test it too. Just set HR tag and see how it behaves. Watch will immediately start measuring (green diode flashing).

Taken on Galaxy Watch 6


I was wondering if it was the IHRM Irregular Heart Rhythm Notification that is causing the data to update.

Samsung Developer Relations


Yes, I confirm.

On GW6, with HR tag, even if I set the manual measurement, the watch face shows the data continuously.

I comfirmed that Samsung’s own pre-installed watch face works well according to the manual. It seems to have nothing to do with ‘IHRM Irregular Heart Rhythm Notification’.

@amoledwatchfaces @Matteo_Dini @SMZ

I don’t have a GW6 yet so I can’t confirm this but will one of you report this as a bug and when you do ask that Ron be cc’d on the ticket.


Samsung Developer Relations

1 Like

@Matteo_Dini , @SMZ
Did any of you report this? If not, I’ll do it.

Please !!
I’m in another job.

1 Like

Hi Ron, it seems that it is really an issue with the watch software. IHRM (maybe) causes constant Health Services Heart Rate measurements. I’m just testing my own Heart Rate Complication and it also updates constantly even when Samsung Health is set to measure every 10 minutes or manual. It’s a huge problem.

Can you report this to someone responsible for watch software?

Also created BUG REPORT: Ticket 47690

It is more related to Health Services and how watch reports data.


I’ll have my watch tomorrow and can better get screen shots and such.

I may be reading this wrong (it has been a long time since I did any coding) but it appears that HEART_RATE_BPM has two arguments on is a sample heart data type and the other is delta data type and you are saying it should be using the sample data type but it is using the delta data type

But just for the record we get a lot of complaints that in GW4 and GW5 that it wasn’t a constant update but was instead only the last read BPM

Samsung Developer Relations

Hi. Ron, it’s an issue within Wear OS 4 or maybe only in Galaxy Watch 6 firmware (I’m not seeing same behavior with Wear OS 4 emulator (synthetic data).

Received response for my ticket.

I don’t know which type of HEART_RATE_BPM is used in WFS. I just now that the implementation is same for Health Services and in Wear OS 3, it works correctly.

In my Heart Rate Complication app, I’m using SampleDataPoint

As soon as I register PassiveListenerCallback, watch will start measuring like crazy. Same thing happens with WFS created watch faces.

Wish I was able to directly communicate this with someone from WFS / Google to provide assistance. Hopefully they will solve this soon.

So again
Same app,

  1. On Wear OS 3 it registers PassiveListenerCallback and gets heart rate values only when watch measures (for example 10 min interval or manual)
  2. On Wear OS 4, it registers PassiveListenerCallback and watch will start measuring constantly on its own as long as it is on the wrist

Definitely something watch firmware / Health services related in Wear OS 4.

So our devices will be flashing non-stop when the watch face with [HR] tag is applied? This does not make any sense…
PassiveListenerCallback in WFS 1.4.20 is used so watch face only received heart rate values when some other health app like Samsung Health measures… That’s why there is measure interval setting.

And about ‘don’t worry about battery’… I’m not sure…

@r.liechty_SDP , @sinjae … this is definitely not good. On Galaxy Watch 4, 5 with Wear OS 3.5, everything works great… There is an issue with Galaxy Watch 6 which needs to be fixed.

I’m spending my valuable time creating support request, sending logs, showing what’s wrong, just to get this type of response as if I don’t know what and how it works. All you have to do is install the same watch face created by WFS 1.4.20 on the Galaxy Watch 5 and Galaxy Watch 6, and you will immediately notice that something is definitely wrong. That’s why this thread was created.

@Matteo_Dini , @SMZ maybe you can create support request too. Just for this issue to be taken more seriously.

1 Like


My understanding is that the expected behavior of 3rd party developers using Health Services is for the exercise heart rate and that is why it was chosen.

I downloaded your MD266 and your [HR] tag did not constantly update but since you have a Tap to measure button is that a WFS 1.3.x version?

Samsung Developer Relations

Hi @r.liechty_SDP , WFS 1.4.20 is using Passive Data which, from the wording means that watch face should get data passively, in the background, only in some intervals (like when you set it in Samsung Health to measure every 10 minutes )

Watch face is definitely not made for exercises…
For this you have exercise apps with foreground services.

It’s an issue within Galaxy Watch 6 firmware. I’m not only one who’s writing it there.

This is what we are using now and it works just fine on previous Wear OS version.

If passive data means to measure every second 24/7 and then watch face user need to charge watch every few hours then OK, maybe yes. Does it make any sense to you?

Just create empty watch face with only [HR] tag with 1.4.20 and then use the same watch face on Galaxy Watch 6 and Galaxy Watch 4.

On Galaxy watch 4, value will update according to setting in Samsung Health. When Samsung Health measures, watch face will use PassiveDataClient to get latest HR reading. You can also set S health to measure constantly.

Now test it on Galaxy Watch 6, immediately after you enable body sensors, watch face will measure and measure, even on AoD when tag is visible there. Definitely wrong. Setting something in S Health wont help too.

It’s an issue within Health Services on Wear OS 4 firmware of Galaxy Watch 6. You wont experience the same on Wear Os 4 emulator with synthetic data.



Hi Ron,

that watch face was created with WFS 1.3.13.

BTW, currently I am unable to update the watch faces due to the “memory budget” issue.
Are there any updates on this side?


I don’t know what the status is, I’ll see if I can get a status update.


1 Like