Sean Barbeau
1 min readSep 23, 2020

--

GPSTest uses the GPS_PROVIDER from the original Location API (https://developer.android.com/reference/android/location/LocationManager#GPS_PROVIDER), which will give you a location based on GNSS satellites. The NETWORK_PROVIDER (https://developer.android.com/reference/android/location/LocationManager#NETWORK_PROVIDER) gives you a location based on Wi-Fi or cellular network. Those two sources are available on all Android devices.

For devices with Google Play Services installed, you can also use the "fused" location provider (https://developers.google.com/location-context/fused-location-provider), which uses Google magic to create a new location from the above two sources, plus other sensors like accelerometer and gyroscope. In theory this is the best approach as it's supposed to give you the best accuracy balanced with power consumption, although I haven't recently done analysis on this. Here's a 2019 Google I/O presentation on the fused location provider - https://www.youtube.com/watch?v=MEjFW_tLrFQ.

Finally, you can access raw measurements here and calculate the location yourself, including doing carrier phase measurements:

https://developer.android.com/reference/android/location/GnssMeasurement

Here's some documentation from EU GSA that describes this in detail:

https://www.gsa.europa.eu/system/files/reports/gnss_raw_measurement_web_0.pdf

--

--