The Fused Location Provider

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):

Fused Location Provider priorities
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.