7

我有一个现有的经过良好测试的应用程序,它使用GPS_PROVIDERNETWORK_PROVIDER具有相同的LocationListener.

LocationManager报告 GPS、网络和被动位置提供程序可用并已启用。

我最近将我的 Galaxy Nexus 升级到 4.1.1,现在NETWORK_PROVIDER不提供任何位置更改。使用运行 4.0.4 的 Galaxy S III 进行测试可以按照我的习惯进行,即使 WiFi 已关闭,网络位置也会更新。当 WiFi 关闭时,我得到了手机信号塔的位置。

在这里与同事交谈,我不能排除某种巧合的硬件故障或某种我没有发现的默认设置更改。我已经仔细检查了整个设置,似乎一切都设置正确。

WiFi 开启,Cell 网络开启,GPS 开启,网络服务全部开启。我的办公桌上没有 GPS 信号,因此当网络位置无法提供结果时很容易注意到。

还有其他人在使用 Verizon Galaxy Nexus + 4.1.1 或 4.1.1 以及任何手机时遇到类似问题吗?

另外一个问题是,谷歌地图正在寻找我的位置,但我PASSIVE_PROVIDER也没有生成位置。

4

2 回答 2

7

Android 的行为在NETWORK_PROVIDER.

我不知道出了什么问题或为什么,但我移除/更换了 Galaxy Nexus 上的电池和 SIM 卡,网络提供商似乎提供了正确的结果。

给我的教训?即使您确定网络提供商可用、已启用并已连接,也不要假设您会向您的听众报告您的位置。

LocationListener就我而言,如果我没有报告任何位置,我需要添加另一项检查以确保我不会继续运行。

于 2012-09-28T14:24:52.763 回答
2

我读过有人关于这个问题的假设。它是“在某些设备中,如果请求后没有更新,则网络提供商不会给予回调”。

考虑这种可能性。

就我而言,我getLastKnownLocation()在开始当前位置跟踪之前使用 a 。在本文中尝试ctrl+ 。f getLastKnownLocation

于 2012-10-19T06:18:36.583 回答