Android 4.1.1中的NETWORK_PROVIDER行为是否已更改?

时间:2012-09-27 21:39:46

标签: android location

我有一个经过良好测试的应用,它使用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也没有生成位置。

2 个答案:

答案 0 :(得分:7)

关于NETWORK_PROVIDER

,Android的行为没有改变

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

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

在我的情况下,如果我没有报告任何位置,我需要添加另一张检查以确保我的LocationListener无法继续运行。

答案 1 :(得分:2)

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

考虑这种可能性。

在我的情况下,我在开始当前位置跟踪之前使用getLastKnownLocation()。 在this article中尝试 ctrl + f getLastKnownLocation