How the tap action works (one-tap heart rate)

How the tap action works (one-tap heart rate)

Tap action (heart rate) is set in Watch Face Studio.
With ‘Run on Device’, the tap action does not work on a real watch.
(I allowed all sensors, but it doesn’t work.)

If so, please answer what the problem is or if there are other settings.
thank you. Have a nice day.

It is possible to check whether the “Measure heartrate” tap action works as well with other Tag expressions.
With [HR_IS_MEASURING] tag, you can notice that the heartrate is measuring by the action or not. Try it on opacity or rotation property for any visual component such as Image or Text. The property of the component will be updated while the HR sensor is working.
Also you can see the result of the measuring action through a Text component with [HR] tag.

※Note: the HR sensor works only while the device is worn on the wrist.

Thank you.


thanks for your feedback!

In my watch faces, I put both the action to have HR measured and the [HR_IS_MEASURING] tag to show the user when he is taking the heart rate measurement.

Unfortunately, there are stability problems.

Sometimes the [HR_IS_MEASURING] tag gets stuck in position 1 (ON) for a long time and does not show heart rate.

The green led under watch, which indicates the hr measurement, turns off but the [HR_IS_MEASURING] remains in position 1 (ON).

In my opinion it is because during the measurement the screen turns off after some time.
Ideally, the screen should not be turned off during measurement. Or at least that’s what it seemed to me

We are collecting a lot of negative feedback for this issue.

I have also created sample videos for users to measure heart rate and have always mentioned keeping the watch well positioned on the wrist but with a little success.

Thank you.


Thank you for a detailed description.
It helped a lot with the production.

I can’t create with succes a complication to measure HR. Setup action-measure HR for text, [HR] setup as text properties. On my watch is showing 0 and nothing happens when I tap it.
Any chance to create a complication to show HR ?

Thank you for the report. We will check this.

1 Like

the “Measure HR” action works only when the device recognizes that it is worn on the body. Please try tap the button several times after wearing the device. Also you can check whether the HR sensor is working by checking the green light on the back of the device as @Matteo_Dini mentioned. If the sensor fails to measure, the value is not updated in text with [HR] tag.
Thank you.

The problem with displaying the heart rate is relevant, users write that on standard dials that are installed on the watch, the pulse is displayed stably and shows the correct value, but the pulse that is displayed on the assembled watch faces in WatchFaceStudio is not correct and most of the time shows zero value. Please pass the WatchFaceStudio developers to check this bug. Thanks.


Thank you for a detailed description.
Is there a way to switch to heart rate screen with one tap like ‘Galaxy Watch Studio’?

Can confirm that heart rate is not measured properly. Works on the stock watchfaces but not on the ones made with the studio.

1 Like

Neither [HR] nor [HR_Z] works. It works on FWS simulator, but not on the watch.

I found a way, I think. Text properties [HR] in WFS, select measure HR when tap it.
Run on device. On watch, go to APPs/Permision and allow it to acces sensors. It will show zero value.
Restart the watch, put it on hand. After 20 min it show HR, but remeber, it’s refresh is set at 60 mins in WFS.

Maybe this WFS project settings have something to do with how often the value refreshes.

Nope, does not work. If i swap watchfaces the value gets updated, but remains stuck afterwards. On the official watchfaces it’s updated continuously, but we get zilch with the ones made in the editor.



I’ve done hundreds of tests, but there is something wrong and I think it needs to be fixed.


Yes, there is something behind it. And I think even the general setting on watch face, not adjustable by user, is another wrong thing.

The method I’ve used, which seems to work most of the time, is create a Text layer, set it to [HR], then add a new layer (empty image file) over it, and set a tap Action for this layer to measure heart rate.
You could avoid the empty image part by just adding tap action to the text layer, but with an image there’s more control over the exact tap area.

I’ve done this on few designs so far and it works well, most of the time. HR even “saves” and transfers to the next watch face, once it’s registered a number.

I say “most of the time” because it seems that, for the “Tap to measure” shortcut to work properly, user needs to stay still and/or not move the watch at all for 10-20 seconds after tapping it. Only then the heart rate measurement will register properly and update the HR indicator. If this fails (which sometimes it does, regardless) then the HR just stays 0 or doesn’t update.

I haven’t had issues when the screen went to AOD during the measurement, as the HR still refreshed after about 5-10 secs if the reading was successful.

Still, with this method of tap and wait, even if everything works perfectly, it’s not a great user experience.
It’s hard to explain to users they need to stay perfectly still while measuring, without a reliable visual indicator, especially when many other watches feature HR readings without such conditions (connected directly to a health app).

Try the watch face on your wrist during the day … You will see that at some point it will freeze.

Thanks for the tip about adding a new layer, in addition to the [HR] text layer. It was driving me mad as I couldn’t figuring out why a single [HR] text layer is working in simulator but not on the watch.

As for visual feedback while watch is measuring, you can use a component like animation or image, set color transparency to 0, add tags ([HR_IS_MEASURING] == 1) ? 100:0

This will show the component when watch is doing the heart measuring and hides it after it’s done. But like Matteo has mentioned, [HR_IS_MEASURING] sometimes gets stuck at value 1 and freezes.

[HR] value doesn’t update if you measure heartrate from S Health app. Maybe it’s because [HR] is not calling the data from S Health, but from internal heartrate monitor sensor. So, other brands can use this function call without S Health app. That would be my guess.

1 Like

How is your samsung health HR configuration?

Did you set the clock to meassure it manual?, every ten minutes?

Would try with a continous messurement instead a manual update of HR, maybe could work.

I don’t have a galaxy watch 4 yet but on a ticwatch 3, couldn’t make HR meassurement works in any way.