我正在使用Google Play定位服务在我的Android应用中获得高精度的位置更新,如下所示:
mLocationRequest=LocationRequest.create();
mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
我的问题是,如果应用用户在设备设置中选择了省电位置模式(见下图),那么上述请求是否能够高精度地获取位置更新,或者我是否必须切换位置模式编程?或者让用户手动更改位置模式唯一的解决方案?
与往常一样,非常感谢大家帮忙指出正确的方向!! :)
答案 0 :(得分:0)
根据this文章,如果没有超级用户权限,您就无法做到这一点。但是, Google Maps 具有此功能,因为它是一个系统(内置)应用程序:
幸运的是,(正如冰人提到的),如果您拥有最新版本的Google Play服务(7.0),则可以使用Location Settings Dialog。
您可以找到更多信息here。
答案 1 :(得分:0)
不,您无法以编程方式更改用户的位置偏好设置。用户的首选项会覆盖您的LocationRequest
优先级以及清单文件中的权限。
最佳解决方案是在Google Play Services 7.0 lib中使用新的API,您可以在@mrek的答案中看到屏幕截图,创建对话框(不是直接创建,而是播放服务为您创建)。您必须使用LocationSettingsRequest.Builder
(reference)。