【发布时间】:2017-10-21 16:23:59
【问题描述】:
我们应用中的流程如下:
- 显示全屏活动,向用户解释我们为什么需要 GPS 定位
- 获取 GPS 权限
- 显示加载微调器
- 获取第一个地理位置
- 将第一个位置发送到服务器
- 从服务器加载相关数据
- 隐藏加载微调器
我们收到了来自用户的多个支持请求,他们说没有任何反应,他们只看到加载微调器。
我们目前正在强制执行激活的 GPS 提供商,因此这不是定位服务不活跃的问题。
通过在我们的一部手机上创建用户帐户并启动应用程序,我设法重现了该错误,我注意到未调用 onLocationChanged
代码通过LocationServices.FusedLocationApi.requestLocationUpdates,因此它应该提供位置,但它没有
我知道我过去通过打开谷歌地图解决了这个问题,但是
a) 我很难想象到目前为止用户还没有使用谷歌地图 b) 告诉他们打开谷歌地图来解决我们应用程序中的问题听起来很奇怪
here 是使用的确切代码的要点(我在第 131 行设置了一个断点,开始调试并到达那里,所以我应该获取位置,但永远不会调用 onLocationChanged 方法
【问题讨论】:
-
Constants.GPSINTERVAL_REGULAR 的值是多少
-
GPSINTERVAL_REGULAR 是 2(所以 2 分钟),这应该不是问题,它适用于我迄今为止尝试过的所有其他设备
-
希望由于某些特定的用例,在调用 onLocationChanged 之前不会以某种方式调用 disconnect 方法。请检查您在哪里调用 locationHandler.disconnect
-
我添加了一个 logd 来连接和断开连接,它似乎没有被调用(至少我在 logcat 中找不到它)。
removeLocationUpdates可以异步执行吗? -
你是指自己。那么它不应该是。
标签: android fusedlocationproviderapi android-fusedlocation