...
There may be some issues with battery optimizations disabling GPS, which may be challenging to avoid, and may need make/model-specific guidance for users.
Part 2 - Testing with multiple phones
I did the same test as previously with 3 phones on a 40 minute walk. This chart shows the distances between the GPS positions reccorded by the 3 phones over the furst 20 minutes
Data Accuracy
...
Bear in mind that part of the walk was mostly in a wooded area - I think the two argest spikes correlate with that. Also note that all 3 phones were in pockets in my jeans (a realistic scenario).
GPS data points were taken every 3 seconds. There was a slight drift (no major jumps), such that by the end there was a 17 second gap in timestamps (betwen A & C; B was in between). I was walking at about 1m/second, but oddly this doesn’t seem to have made the accuracy any worse…
If we discount the periods where I was in the woods, the phones seem to agree to withn 20m on location almost all the time. This is definitely better than the Safe Paths App, but still some way off what
This chart shows the “self-reported accuracy” data (the max of any pair of self-reported accuracies). If the self-reported accuracy was correct, all the data would be below the black line. It mostly is, but not entirely.
...
For the 2nd part of the walk, which was more open, I had lost C (more on that later,
I rebased the A & B series to have a synchronized start time again (and they stayed sync’d throughout, suggesting that the drift was due to poor GPS signal in the woods.
...
In these better conditions, they stayed within 15m of each other almost all the time.
Reliability
Bringing in new phones exposed some interesting issues. Fortunately Basic Air Data has better error messages than Safe Paths, so I was able to identify some issues that would have gone unnoticed before.
On the Redmi 6A, I was warned that GPS was not enabled.
In settings, the phone offered 3 options for location detection
WiFi only (default)
GPS only
WiFi + GPS
For the test, I moved to the GPS setting, but all my Safe Paths testing previously must have been with WiFi.
Then, after about 20 minutes, it stopped recording. I didn’t notice until the end (since the phone was in my pocket), but there was a warning pop-up that said that the App had been killed during background recording by a battery saver process,
It advised me to check the phone battery settings.
This kind of problem will have been impacting Safe Paths as well, but we won’t notice it. I presume that there is no way for an App to address this directly, other than flashing warnings to the user.
Implications for Safe Paths
It should be possible to get GPS accuracy across multiple phones to ~20m in open good conditions, with spikes up to 30m in worse conditions (e.g. under tree cover). It is unlikely we can do much better than that.
Therefore our assumption that a “contact” should be determined by a GPS distance of 20m might be based on unreasonable assumptions about GPS accuracy.
Some phones have GPS disabled by default, and do location detection through WiFi only by default. It is posisble for an App to detect this and direct the user to change their settings. We should consider adding this function. We should also experiment with a range of popular phones to determine what the common sets of options & defaults are.
GPS background logging is frequently killed by battery saver options on phones. It is not possible for an App to stop this, but it is possible to detect that it has happened and warn the user. Again, we should consider adding this function, and testing with popular phones to determine what the common sets of options & defaults are.