Ticket Created
over 1 year ago

TREES-6206

Fenix 7 series - GPS track recording is stopped during activity when a widget is displayed

The following scenario currupts the GPS track recording of any activity and have to be fixed in my opinion with higher priority on the Fenix 7 series devices.

During an activity with GPS track recording it is possible to display the watch face and switch to any widget on your device. This behavious was also possible on other devices like the Fenix 6 series. If you do that and display a widget it seems that the GPS is turned off and the track recording stops.

That means checking the solar intensity, messages or using widget like MagicDust (that double the battery life during an activity) doesn't work anymore. That leads automatically to a false track recording.

After displaying the active activity screen again the GPS is activated again and starts recording. The recorded activity includes all information except the missing GPS track points that are not recorded while the widget was displayed (heartrate, temp, altitude...).

Repro:

- Start an activit that supports GPS track recording

- select the map view

- Toggle to the watch face and select a widget

-walk some meters to a different location to check the missing track points later in the recorded track

- toggle back to the activity screen, the GPS fix is displayed

- the map view is updated and displays a straight line to the position where you selected the widget

Device info: Fenix 7X sapphire solar, FW 7.20, tested GPS modes (GPS only and all systems)

It would be nice if any other user can verify this issue, because it may also be related to my Fenix 7x device, thanks for your help.

  • Yes, the solution works great.

    Here some information what's going on with the new devices.

    Since the F7 / Epix 2 series Garmin changed the app behaviour in general. Widgets are not longer widgets that are also apps.

    That means the GPS/Position events can't be reused by widgets, each app have to request its own Position events (and also new user access rights for the position).

    Start an activity app and navigate to the widget glances to open your preferred widget. Without the fix each widget stops the GPS position events during startup and the running activity recording in the background doesn't get any new positions. The track recording is empty for the duration until a new GPS position is available.

    The code fix I added simply initializes the GPS position events again and the track recording gets new position events, the track recording is working again.

    You can try the MagicDust widget to test the solution. The GPS recording doesn't get corrupted or only for a few meters. During startup of the widget the position events are requested and the watch (F7X) displays the general GPS position good message. Then everything works fine.

    There are some special cases where the developers have to enhance theirs app code, e.g. if the GPS signal get's lost then the code example does not automatically try to get a new valid GPS signal.

  • You are sure this is working for you? I asked the dev of a widget/app I will mainly use during activities to implement this, I got a beta version with the "fix" and it still does not work for me (also did not work for him). I did two walking routes with my old F6 and F7 at the same time, spending a lot of time in he "fixed" widget/app. At the red x I used the app without you "fix" and after exiting the tracking did not resume at all, so it might do something, But I think that would need further tests. 

    https://ibb.co/sVbX6Mm
  • Here the solution for all developers out there to provide a stable widget app that doesn't interrupt the GPS recording of a running activity app in the background.

    Simple add this one line of code to get a GPS position event triggered in your widget. (Position.enableLocationEvents(Posiiton.LOCATION_CONTINUOUS, null);)

    using Toybox.Position as Position;
    
    class YourWidgetAppView extends Ui.View {
        function initialize() {
            Position.enableLocationEvents(Posiiton.LOCATION_CONTINUOUS, null);
            View.initialize();
        }
    }

  • This is also happening on my FR955. I noticed when you enable LiveTrack GPS will stay on.

  • This bug is really critical! Fix it please...