title: Android location request PRIORITY_HIGH_ACCURACY has no effect
body: <p>My Android app needs high accuracy location tracking. On app start, it reads the location settings programmatically and presents a screen if <em>high accuracy</em> is not selected.</p>
  
  <p>I adapted Google's official example (<a href="https://developers.google.com/android/reference/com/google/android/gms/location/SettingsClient" rel="noreferrer">https://developers.google.com/android/reference/com/google/android/gms/location/SettingsClient</a>) to Kotlin.</p>
  
  <p>This works as intended on a Huawei phone, but fails on Samsung S7 and S8: If the user has selected <em>Power balanced</em>, a dialog appears and the location tracking is set to <em>high accuracy</em>. However, if <em>GPS only</em> was selected previously, the <code>ApiException</code> is not thrown and the setting stays the same.</p>
  
  <pre><code>val locationRequest = LocationRequest.create()
  locationRequest.priority = LocationRequest.PRIORITY_HIGH_ACCURACY
  
  val builder = LocationSettingsRequest.Builder().addLocationRequest(locationRequest)
  val result = LocationServices.getSettingsClient(this).checkLocationSettings(builder.build())
  
  result.addOnCompleteListener(OnCompleteListener {
      try {
          it.getResult(ApiException::class.java)
          // on Samsung + GPS only setting, execution passes here, no ApiException thrown
      } catch(e: ApiException) {
          if(e is ResolvableApiException) {
              // ...show resolution dialog...
          }
      }
  }
  </code></pre>
  
  <p>Any hints would be much appreciated, thanks :)</p>