在我的应用中,我尝试获取最后一个已知位置(当用户点击特定按钮时)。根据谷歌的原则,为此,我通过Google Play服务使用getLastLocation()方法。
http://developer.android.com/training/location/retrieve-current.html#last-known
工作得很好,但是当在设备设置中禁用了位置时,我使用SettingsApi向用户显示对话框而无需离开应用程序,在那里他可以打开必要的设置。
https://developers.google.com/android/reference/com/google/android/gms/location/SettingsApi
这也工作得很好,但即使我设置了PRIORITY_LOW_POWER(这就是我需要的全部),对话框询问(除了打开所需的位置设置)如果我还要打开WiFi扫描:
这甚至会询问我是否要在打开位置时以最高精度启用WiFi扫描!通常,它总是要求关闭WiFi。它真的很烦人,特别是在Android 6中存在WiFi错误导致耗尽电池时,唯一的解决方法就是关闭WiFi扫描:
https://code.google.com/p/android/issues/detail?id=188909
所以这是我的问题 - 有没有可能使用SettingsApi对话框打开没有WiFi扫描的位置?
以下是我的代码片段:
LocationRequest locationRequest = new LocationRequest().setPriority(LocationRequest.PRIORITY_LOW_POWER);
LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder()
.addLocationRequest(locationRequest)
.setAlwaysShow(true);
PendingResult<LocationSettingsResult> result =
LocationServices.SettingsApi.checkLocationSettings(googleApiClient, builder.build());