I'm playing with the location in a WatchFace app (F5 Plus device) and notice a quite odd behavior. My code is quite straightforward, I check the current location periodically via Activity.getActivityInfo().currentLocation and if it's not null and has been changed from the last attempt then I store the new location for future use in storage.
In most cases, I need to explicitly update location to make it changed in WatchFace, like call any app which uses GPS. But sometimes the .currentLocation call returns new coordinates without explicit gps update and even without GPS satellite access. E.g. I may fly to another country and as soon as my plane is landed and I'm able to turn my phone on - the watch sync with it and position in the WatchFace get updated while I'm in the airport. But not always, just about 20% of the times.
So, I assume that WF has the ability to get location from the phone. But I'm struggling to understand the logic, in which cases it gets an update from the phone and in which just return null. And is there any way to explicitly request location from the phone or enforce to obtain the data from the phone if .currentLocation is old enough?