FusedLocation API - 未调用onLocationChanged

时间:2017-05-22 06:01:54

标签: android fusedlocationproviderapi android-fusedlocation

我们的应用程序中的流程如下:

  1. 显示全屏活动,向用户解释我们为何需要GPS位置
  2. 获得GPS许可
  3. display loading spinner
  4. 获得第一个地理位置
  5. 将第一个位置发送到服务器
  6. 从服务器加载相关数据
  7. 隐藏加载微调器
  8. 我们有多个来自用户的支持请求,说没有任何反应,他们只看到加载微调器。

    我们目前正在执行已启用的GPS提供商,因此这不是非活动地理位置服务的问题。

    我设法通过在我们的某个手机上创建用户帐户并启动应用程序来重现该错误,并且我注意到没有调用onLocationChanged

    代码已超过LocationServices.FusedLocationApi.requestLocationUpdates,因此它应该提供位置,但它不会

    我知道我过去通过打开谷歌地图解决了这个问题,但是

    a)我很难想象用户到目前为止还没有使用谷歌地图 b)告诉他们打开谷歌地图修复我们的应用程序中的问题听起来很奇怪

    here是使用的确切代码的要点(我在第131行设置断点,开始调试并到达那里,所以我应该获取位置,但是onLocationChanged方法永远不会被调用

1 个答案:

答案 0 :(得分:1)

"解决方案"如果你想打电话给它,就是告诉用户打开谷歌地图,点击"找到我"按钮,等到谷歌地图找到它们然后再次打开我们的应用程序并向我们报告是否有任何作为

编辑:

甚至更好,重构整个事情,根本不使用google-api-client,看起来像这样:

link(它的kotlin,无论如何,kotlin很好)

编辑2:我将它从eventbus实现更改为rx-subject。 eventbuses真的很脏,如果可能的话,你应该远离他们

相关问题