2011-06-09 97 views
4

在我的android应用程序中,我使用网络提供程序在位置侦听器中接收位置更新并将它们同步到我的服务器。测试时,我会拿着设备开车几个小时,第二天再回来。Android网络位置需要数小时才能更新位置

问题是听众有时需要几个小时才能给我一个更新的位置。我将离开A点并到达B点,设备将B报告为新位置需要3个小时。第二天从B点回到A也会发生同样的情况。

看起来很奇怪,它说这么久以更新位置。距离过滤器是600米和10分钟的时间间隔。关于使用网络提供商可以期待的最好的三个小时?

在旁注中,它使用gps完美工作。

+0

有时我也遇到同样的问题,所以我对这个问题很感兴趣。虽然Google地图可以看到位置更改,但我的应用无法执行此操作。我必须等待足够长的时间,有时超过半小时,我可以看到新的位置。 – flypen 2012-05-25 03:47:02

+1

将设备带到新位置时,它是否具有Internet访问权限?您需要访问Internet(连接到Wifi或移动数据连接)才能使用NetworkProvider获取位置。 – 2012-05-25 07:02:30

+0

这个问题有没有进展? – flypen 2012-05-28 15:04:22

回答

0

我不知道你的代码是做什么的(这将是有益的,看看你的代码),但这个尝试得到一个快速的位置更新,当你第一次开始更新自己的位置:

Location networkLocation = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); 

的距离过滤器和时间间隔设置是建议,而不是说明,因此可能忽略了这些建议。

+0

我实际上正在使用一个监听器,并像那样通过网络提供者。 '_locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,updateTime,updateDistance,this);' – Lysandus 2011-06-10 12:44:45

+0

这很好,但上面的代码片断是用于一次性位置更新,您可以在其他侦听器获得结果之前使用该位置更新。它通常对你的位置有一个合理的近似值。 – 2011-06-10 23:31:13

+0

尝试getLastKnownLocation(),但始终返回侦听器所在的相同位置。 – Lysandus 2011-06-14 17:23:12