我有这个应用,该应用要求使用Google API服务的位置许可。我注意到当我满足以下条件时,会有一种奇怪的行为:
1。-Android O设备。 2.-必须启用应用程序位置权限。 3.-必须启用设备位置权限。 4.-设备定位方法必须设置为“高精度”以外的其他方法(可以是“省电”或“仅手机”)。 <-这是重要的。
在应用程序中,在我的片段中,我将LocationRequest对象设置为优先级:PRIORITY_HIGH_ACCURACY,Android将显示弹出窗口,通知必须授予用户位置权限。似乎这里的问题是,由于设备位置已打开,Android不执行任何操作,也不更改位置方法,因此,位置设置仍然不令人满意,因此它将不断显示弹出窗口以请求权限。 有趣的是,如果您的定位方法为“省电”或“仅手机”,但设备位置已关闭,则先前的练习可以正常进行,打开位置并将定位方法更改为“高精度”。
这是Android O的限制吗?
注意:Android P没有此问题,因为它们摆脱了位置设置中的“位置方法”。
答案 0 :(得分:0)
在android 8.0和8.1设备中也有同样的问题。 我通过将位置模式更改为“省电”解决了该问题。
mLocationRequest.setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY);