android / location-samples

Multiple samples showing the best practices in location APIs on Android.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

How can I reduce power usage and still GET location updates in a location-based Android application?

kujaska opened this issue · comments

I tried this Google example code - https://github.com/android/location-samples/tree/master/ForegroundLocationUpdates:

  • it works fine with default settings:

priority = LocationRequest.PRIORITY_HIGH_ACCURACY

but it keeps my Android 5 phone WARM and will DRAIN its battery in ~ 8 hours

  • if I opt to:

priority = LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY

then I never get updated location but only the old location.

Should I implement some auto-job e.g. with workmanager
https://developer.android.com/topic/libraries/architecture/workmanager
which will let's say 3-4 times per hour:

  • switch on LocationRequest with PRIORITY_HIGH_ACCURACY
  • get updated location
  • switch off LocationRequest till next scheduled time?

Or is there any other better solution?

Thanks!