Battery consumption question

So I have 2 questions regarding battery consumption. As far as my research goes, GPS and/or WiFi are some of the most battery-expensive features. My questions are:

1- when I use the Position.enableLocationEvents(Position.LOCATION_CONTINOUS, method(:onPosition)); does it consume a lot of battery? does using LOCATION_ONE_SHOT regularly be more battery efficient considering that I don't need that many data points?

2- It's stated on the API docs that making a web request using makeWebRequest() can be used when connected to WiFi or a mobile device over bluetooth. Does that mean that it looks for a bluetooth device first before resorting to WiFi to conserve energy? I once had a chance to talk to engineer from Garmin who told me that downloading software updates to the watch prioritises bluetooth over WiFi so is it the same case for web requests?

  • LOCATION_ONE_SHOT often has an accuracy of QUALITY_LAST_KNOW where it might not be your current location, but from the last time you used GPS.

    What I do is use LOCATION_CONTINOUS and then in the callback, when the accuracy is QUALITY_USABLE or above, I turn off GPS using LOCATION_DISABLE, so GPS isn't on that long a time

    makeWebRequest() will always just use the connection through the phone, unless wifi is already connected.   Wifi on a watch is only connected for bulk transfers/media sync. The exception is for edge devices where wifi is connected if you aren't recording an activity,

  • That's a great idea I will try that thank you

    What I do is use LOCATION_CONTINOUS and then in the callback, when the accuracy is QUALITY_USABLE or above, I turn off GPS using LOCATION_DISABLE, so GPS isn't on that long a time

    Any idea on how much battery web requests consume btw? I am afraid that if I send too many requests it will drain my battery.

  • It all depends on how often you do a makeWebRequest() and how much data is involved.  With my weather widgets, I do it once every 15 minutes by default, but a user can change that as high as once an hour.

    If you are doing a bunch, you want to make sure there is never more than one active at a time, so don't do a second one until the first is completes.  Then the way to check the impact on battery is to test on a real device and see what happens to battery over say a day, and then do the same but with the makeWebRequest() calls commented out