I've been testing android's new Location API's for a few weeks. In general they work quite well, however, the new Location provider frequently loses the plot.
Specifically, I wire up an example based on the receive location updates example. It works correctly, and the location updates are received as expected.
The problem seems to be with the Fused provider itself. In some areas (notably around my home) it completely gets lost. It will suddenly think I am kilometers away from where I am. Around where I work (which is a more built up area) it is much more accurate and always reasonably close to where I actually am (in Balanced mode).
I have made many attempts to fix this, including switching to PRIORITY_HIGH_ACCURACY when I suspect it is in error, or using the older LocationManager to try get a GPS fix to establish where I really am. But nothing seems to help too much. I suspect Google has bad data on where certain mobile towers of WiFi hotspots are around my home, and when it connects to certain towers is suddenly jumps a few km from the true location. It's very annoying and will interfere with the Geofence API also. Any advice on how I can fix this?
The accuracy values are typically more than 10 meters, while a third party GPS app (such as GPS test) typically reaches better accuracy if I wait long enough.
The fused location provider is a location API in Google Play services that intelligently combines different signals to provide the location information that your app needs.
This constant was deprecated in API level 29. Location provider statuses are no longer supported. This constant was deprecated in API level 29.
Can you just ignore the location updates that are inaccurate? This code was released at Google IO 2013 I think, so it might still have some bugs.
(I am experiencing the same thing as you. Rural area, the Fused Location provider is giving me locations all over the place)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With