In Android Oreo, when location was on, there were 3 choices for how it worked: Device Only, Battery Saving, or High Accuracy. In Pie, it's easy to change to Device Only or High Accuracy by turning "Google Location Accuracy" on or off in Location settings. How can I change to Battery Saving?


Google has removed all of the UI from the OS to change this setting, but it's still changeable in other ways.

If an app has the WRITE_SECURE_SETTINGS permission, it can do this by calling Settings.Secure.putInt(contentResolver, Settings.Secure.LOCATION_MODE, Settings.Secure.LOCATION_MODE_BATTERY_SAVING);. The Tiles app in the Google Play Store includes a Location tile that does exactly this.

Alternatively, if you have ADB or root, you can do this with no third-party apps by running settings put secure location_providers_allowed +network,-gps from an ADB shell or a root shell.

  • WRITE_SECURE_SETTINGS permission is not for use by third-party applications developer.android.com/reference/android/… – Jim Nov 11 '19 at 5:53
  • 1
    @Jim yes, but there's a workaround via adb to grant it to them anyway. – Joseph Sible-Reinstate Monica Nov 11 '19 at 12:24
  • thanks~ i'll try, btw after putInt(LOCATION_MODE_BATTERY_SAVING) how can i use back to high accuracy mode? can i simply change it to LOCATION_MODE_HIGH_ACCURACY? – Jim Nov 11 '19 at 15:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.