I have noticed behavior that the GPS gets turned on when I start an ActivityRecording session, without me needing to enable GPS events with
Position.enableLocationEvents(Position.LOCATION_CONTINUOUS, method( :onPosition ));
When inspecting the FIT file after recording it is full of all the gps information, and when vieing the activity in the Connect app all the location data is as I would expect from an app utilizing GPS. I am using SPORT_RUNNING with a sub sport. I can't find anything in the documentation around whether this is expected or not. This seems reasonable to me and I am fine with this behavior.
The reason I bring this up is I have gotten reports, and have noticed myself, that there are battery drain issues after the app is closed. I have seen the other threads on this topic and have made sure to close the sensors, disable gps events, and close and null out the session and timers.
I clean up the Session as described in the documentation:
session.stop(); session.save(); session = null;
Yet the issue persists.
I have created an alternative version of my app where I don't use the Activity Recording and instead enable/disable the Sensors and GPS directly and I don't see the battery issue.
This leads me to believe there is an issue in the ActivityRecording API that turns on GPS/Sensors for its own use, but does not clean them up appropriately. Resulting in the battery drain.
I have primarily tested on FR955 but have gotten reports of it on Venu3S as well. I know one other person with FR245 and they claim not to be seeing the issue.
Given these API Versions: FR245 => 3.3, FR 955 + venu3s => 5.1, The issue might be localized to a later ConnectIQ API version.