【发布时间】:2017-05-01 18:05:47
【问题描述】:
我有一个可以跟踪设备位置的应用。过去,我使用 Android 框架位置 API。按预期工作 - 所以没有真正需要改变它。 但现在我想评估 Google 推荐使用的 Google Play 服务中的位置服务,因此我相应地更改了我的应用程序。有一些选项将来可能会派上用场。
为此,我正在关注 https://developer.android.com/training/location/change-location-settings.html 在解决了相当复杂的依赖项和要求之后,我现在有了一个工作配置。但也有问题:
第 1 部分
似乎没有使用“仅设备”模式的选项(这意味着只有 GPS 用于定位服务,而不是 WiFi 等……
如果我使用 PRIORITY_HIGH_ACCURACY、间隔 10000 和最小位移 20 请求位置更新,如果设备设置为位置模式“仅设备”,则挂起的 LocationSettingsResult 总是返回状态 RESOLUTION_REQUIRED。 解决方案是激活“高精度”模式,该模式还可以启用 WiFi 等。 但在这种模式下,位置数据会发送给 Google,这对我的一些用户来说可能是一个隐私问题。
我认为这是一个错误,因为“仅设备”模式应该足以满足请求。 在哪里提交 Google Play 服务的错误?不幸的是,这些问题超出了 AOSP Bug Tracker 的范围,我不知道有任何官方地方可以提交此类错误。
从服务启动位置请求时会出现另一个问题。如果现在状态是 RESOLUTION_REQUIRED 如何解决这种情况? Google 提供的解决方案需要一个活动来解决。但是在服务中没有可用于此的活动。 LocationSettingsResult 的状态对象提供对 LocationSettingsStates 对象的访问权限——但是如何提取问题的原因和可能的解决方案?
【问题讨论】:
-
我也面临同样的问题,此外在
onActivityResult中,当启用定位结果到Device Only时,resultCode被返回为RESULT_CANCELED=0并且无法区分哪个模式位置已解决(高精度或仅限设备)顺便问一下,您是否找到了解决方案? -
@Mehdi Karamosly:老话题 ;-) 那时我回到非常旧的 API 来获取我的位置更新,目前仍然有效(测试到 Android 8.1)
标签: android google-location-services