Android's LocationManager gives raw fixes from one provider at a time. The Fused Location Provider in Google Play 1 services (play-services-location 21.4.0, June 2026) combines GPS, Wi-Fi, cell towers and motion sensors, choosing the cheapest source for the priority you state (plus PRIORITY_PASSIVE, which only receives fixes other apps asked for):
| Priority | Typical accuracy | Power | Use |
|---|---|---|---|
| PRIORITY_HIGH_ACCURACY | A few meters (GPS) | High | Navigation, a run tracker |
| PRIORITY_BALANCED_POWER_ACCURACY | About 100 m (Wi-Fi, cell) | Medium | Nearest shop, local weather |
| PRIORITY_LOW_POWER | About 10 km | Low | Country or city |
It needs Google Play services, as in this book's google_apis emulator image (LocationManagerCompat is the fallback without them); kotlinx-coroutines-play-services turns its Task results into await() calls.