We are investigating the quality of GPS Logging that can be achieved by Android Apps, without using Gogle Location Services.
Basic Air Data GPS LOgger was of particular interest because it is Free Open Source Software.
https://play.google.com/store/apps/details?id=eu.basicairdata.graziano.gpslogger&hl=en
Permissions sought by the App
Same as Safe Paths: just location data + Storage to send data.
Data Accuracy
Self-reported accuracy varied from 3m to 214m, average of 8.4m. This includes a section in thick wood
I only had one phone this time, so not able to compare logs from different phones
Comparing the trail with a map, this appears to be spot-on accurate.
Tomorrow I will try to do the same route with 3 phones, to further validate the accuracy.
Timing of log generation
I configured for every 3 seconds (the max interval supported; it advises that 1 second give better accuracy). Logs were rock solid every 3 seconds exactly for the 45 minute logging period.
Battery performance
It used 2% of my battery over 45 minutes. Note that my phone has a hefty 5,000 mAh battery. So that’s 133mAh/hour of operation.
However, we would ought to be able to get away with 15 seconds or so of GPS activity every 5 minutes. So that’s the equivalent of 3 minutes/hour, or 72 minutes / day, which would use 160 mAh / day. That’s < 10% of the battery of a typical phone and probably acceptable.
For comparison, currently my phone reports that COVID Safe Paths has useed 4% of the battery over 8 hours - that’s 200 mAh over 6 hours, or 600 mAh/day.
Open Source License
The repository for the source code is here:
https://github.com/BasicAirData/GPSLogger
The code is licensed under GNU GPL. This means that we could not incorporate code directly into Safe Paths without the GNU GPL applying to Safe Paths as well, which is probably unacceptable.
Other Points
This point is recorded in the App Q&A. It could imply problems for Safe Paths - we may need to develop extensive user guidance for this issue, for many models of phone.
https://github.com/BasicAirData/GPSLogger/blob/master/readme.md
Q - The App sometimes stops recording when running in Background.
A - The App could be closed by the System during the Background Recording. To avoid it, as first step, go on the Android Settings and turn off all Battery Monitoring and Optimizations for GPS Logger. On Android 9 check also that the Application is NOT Background Restricted. Unfortunately any Device Brand implemented in a different Way the Settings to keep safe the Background Apps, so a small Research must be done. For example, for some brands you have to whitelist the background apps, whilst for some others you have to set the "high performances" power saving mode. Moreover some Anti-Viruses are very aggressive with long running Apps, and must be correctly set
I also noticed that while loggging GPS data, the App has a notification, which cannot be dismissed, reflecting what we see on Safe Paths: Git Hub #473. That suggests that perhaps this issue cannot be fixed.
Learnings
It is possible to get sufficiently accurate GPS data, using standard Android hardware and the same permissions that Safe Paths uses today - with an acceptable battery load.
We have not yet understood how this is achieved and how the algotihms of the GPS Logger tool differe from Safe Paths GPS recording algorithms, but this is a topic we can investgate further.
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.