owntracks / android

OwnTracks Android App
http://owntracks.org
Eclipse Public License 1.0
1.39k stars 476 forks source link

Missing location updates in significant location change mode #1865

Open McOrvas opened 1 month ago

McOrvas commented 1 month ago

I am a new OwnTracks user, I've started with version 2.5.0. Everything works perfect in move mode, but in significant location change mode the app is only transmitting (or maybe also collecting) the current location at very irregular intervals. I have configured the time interval to 5 minutes and the minimum distance to 100 m, but sometimes the app did not send a location for several hours. I have turned off all battery saving options for the app and of course allowed the background execution, but it all makes no difference. It doesn't matter if I walk, use the bicycle or the car for several kilometers. I've read the documentation and searched the web but I haven't found a solution. Maybe it is not a problem of the app but of Android, but at the moment the significant location change mode cannot be used sensibly in my case. To transmit the locations I use http.

As an example, I have added two pictures from this week with a car journey over ~50 km incl. return journey.

Move mode (works as expected!): Screenshot Move mode

Significant location change mode (no location updates during the whole driving cycle): Screenshot Significant location change mode

jpmens commented 1 month ago

I've started with version 2.5.0

Please note that our version 2.5.3 which addresses some of this is already on the Play stores, and has been built by F-Droid. We'd appreciate you re-evaluating with the updated code.

wir3z commented 1 month ago

Which Android build number are you using? I've identified the same behavior on this ticket: https://github.com/owntracks/android/issues/1851

It started to happen after the Android 14.0.0 (AP2A.240905.003, Sep 2024) security update. Changing the OwnTracks app locator priority to HighAccuracyinstead of BalancedPowerAccuracy "fixes" this. It seems Android is incorrectly deep sleeping the app and not waking for locations.

McOrvas commented 1 month ago

Please note that our version 2.5.3 which addresses some of this is already on the Play stores, and has been built by F-Droid. We'd appreciate you re-evaluating with the updated code.

I have tested "2.5.3 (420503003) - OSS" from F-Droid for the last three days, but unfortunately it shows the same behavior in significant location change mode on my phone as the older 2.5.0.

Which Android build number are you using? I've identified the same behavior on this ticket: #1851

It started to happen after the Android 14.0.0 (AP2A.240905.003, Sep 2024) security update. Changing the OwnTracks app locator priority to HighAccuracyinstead of BalancedPowerAccuracy "fixes" this. It seems Android is incorrectly deep sleeping the app and not waking for locations.

I am currently using Android 14 AP2A.240905.003.F1, Android security update from September 5th. Because I have just started using OwnTracks, I cannot say whether it would have been better before the Android September update. Just for my understanding: Is it possible to change/configure the app locator priority from BalancedPowerAccuracy to HighAccuracy on the installed app or is it a change in the source code? Is this different locator priority one of the differences between significant location change and move mode?

wir3z commented 1 month ago

Just for my understanding: Is it possible to change/configure the app locator priority from BalancedPowerAccuracy to HighAccuracy on the installed app or is it a change in the source code? Is this different locator priority one of the differences between significant location change and move mode?

Just from the app: Preferences -> Configuration management. Click the 3-dots top right, and then editor. Key is locatorPriority and value is HighAccuracy.

Significant change mode only sends a location update once it sees you move, move mode sends them continuously regardless of movement.

McOrvas commented 1 month ago

Just from the app: Preferences -> Configuration management. Click the 3-dots top right, and then editor. Key is locatorPriority and value is HighAccuracy.

Significant change mode only sends a location update once it sees you move, move mode sends them continuously regardless of movement.

Thanks for the description! I have changed the locatorPriority and it seems to work for me, too. But with this configuration it seems that OwnTracks is really only using GPS signals for the location, which means that inside buildings without GPS reception the position is not updated. For example, the final track position at home or in the office is not transmitted automatically (but a manual transmission with the button works). With BalancedPowerAccuracy this was not a problem. So from my side this is of course a workaround, but not the final solution for this issue.

wir3z commented 1 month ago

Thanks for the description! I have changed the locatorPriority and it seems to work for me, too. But with this configuration it seems that OwnTracks is really only using GPS signals for the location, which means that inside buildings without GPS reception the position is not updated. For example, the final track position at home or in the office is not transmitted automatically (but a manual transmission with the button works). With BalancedPowerAccuracy this was not a problem. So from my side this is of course a workaround, but not the final solution for this issue.

I've opened a ticket with Google over this. What appears to be happening is they are no longer pulling wifi AP locations into the fused locator service on that last Sept5 patch. It's either GPS, or cellular. Cellular only would explain the phone sleeping unless you were crossing a lot of cell boundaries.

wir3z commented 1 month ago

When I overlayed my last bike ride with my telco's cellular tower map, it would align with my theory that the Sept5 update is no longer feeding wifi access point locations into the locator service.

McOrvas commented 1 month ago

In the trip of the example picture in my first post, I drove a distance of ~50 km on the highway. I'm sure that I have crossed several mobile cells, but without any update.

With the changed configuration to HighAccuracy the locator update works in the defined interval over several days now. But I noticed one thing, maybe due to the changed locatorPriority or a general change in the 2.5.3 version: With 2.5.0 OwnTracks consumed and transmitted locator updates from other apps, for example during navigating with Google Maps, I got a lot more locator updates as only every 5 minutes (I know that there is a configuration option in the GUI to disable this). With 2.5.3 and HighAccuracy I really only get the updates in the defined interval, no more. This is not a big issue, but another behavior of the service as before. Just as an information.

wir3z commented 1 month ago

Both versions should be consuming locations from all apps. Did you try 2.5.0 recently to confirm that what you said is still the case? When I did a back to back on my phone, both stopped working as expected after the phone took the Sept5 Android 14 update.

McOrvas commented 1 month ago

Both versions should be consuming locations from all apps. Did you try 2.5.0 recently to confirm that what you said is still the case? When I did a back to back on my phone, both stopped working as expected after the phone took the Sept5 Android 14 update.

I did a few experiments for this with Google Maps navigation:

wir3z commented 1 month ago

Are you saying if you use the version from the Play Store, it's working? I wasn't seeing that when I tried it previously.

McOrvas commented 1 month ago

Are you saying if you use the version from the Play Store, it's working? I wasn't seeing that when I tried it previously.

Yes, the use of external location updates (tested with Google Maps and Komoot) works for me only with the OwnTracks version from the Google Play Store, but not with the F-Droid version. But just to be clear, this is independent of the original issue.