android – FusedLocation API – 不调用onLocationChanged

android – FusedLocation API – 不调用onLocationChanged,第1张

概述我们的应用程序中的流程如下: >显示全屏活动,向用户解释我们为什么需要GPS位置 >获得GPS许可 >显示加载微调器 >获得第一个地理位置 >将第一个位置发送到服务器 >从服务器加载相关数据 >隐藏加载微调器 我们有来自用户的多个支持请求,说没有任何反应,他们只看到加载微调器. 我们目前正在执行激活的GPS提供商,因此这不是非活动地点服务的问题. 我设法通过在我们的一部手机上创建用户帐户并启动应用 我们的应用程序中的流程如下:

>显示全屏活动,向用户解释我们为什么需要GPS位置
>获得GPS许可
>显示加载微调器
>获得第一个地理位置
>将第一个位置发送到服务器
>从服务器加载相关数据
>隐藏加载微调器

我们有来自用户的多个支持请求,说没有任何反应,他们只看到加载微调器.

我们目前正在执行激活的GPS提供商,因此这不是非活动地点服务的问题.

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

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

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

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

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

解决方法 “解决方案”,如果你想打电话给它,是告诉用户打开谷歌地图,点击“找我”按钮,等到谷歌地图找到它们然后再次打开我们的应用程序并向我们报告是否做了什么

编辑:

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

link(这是kotlin,无论如何,kotlin很好)

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

总结

以上是内存溢出为你收集整理的android – FusedLocation API – 不调用onLocationChanged全部内容,希望文章能够帮你解决android – FusedLocation API – 不调用onLocationChanged所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1126041.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存